QVector operator[] 没有成员值
QVector operator[] has no member values
我正在尝试将数据保存到成员值
我有一个包含成员变量的对象的 QVector。使用 .at()
是被禁止的,因为我正在尝试转换一个常量,.value()
不会保存更改,因为它只是一个实例。
我正在尝试使用 [] 运算符来 return 对对象的非常量引用,以便更改成员变量的值,但是我收到错误
class QVector<Object>' has no member named 'value'
objects[i].value = newValue;
^
这是导致错误的代码片段 class:
void Class::linkValueToObject(QVector<Object>* objects, QStringList* data )
{
for( int i = 0; i < object->size(); ++i )
for( int j = 0; j < data->size(); ++j )
if( conditionMet )
{
newValue = data.at(j)
objects[i].value = newValue //Line of error
break;
}
}
class Object
{
public:
QString value;
}
导致此错误的原因是什么?
当您想要将新值设置为 value
时,您实际上并没有取消引用 objects
。您需要使用 *
运算符来执行此操作。
void Class::linkValueToObject(QVector<Object>* objects, QStringList* data )
{
for( int i = 0; i < object->size(); ++i )
for( int j = 0; j < data->size(); ++j )
if( conditionMet )
{
newValue = data.at(j)
(*objects)[i].value = newValue //Line of error
break;
}
}
我正在尝试将数据保存到成员值
我有一个包含成员变量的对象的 QVector。使用 .at()
是被禁止的,因为我正在尝试转换一个常量,.value()
不会保存更改,因为它只是一个实例。
我正在尝试使用 [] 运算符来 return 对对象的非常量引用,以便更改成员变量的值,但是我收到错误
class QVector<Object>' has no member named 'value'
objects[i].value = newValue;
^
这是导致错误的代码片段 class:
void Class::linkValueToObject(QVector<Object>* objects, QStringList* data )
{
for( int i = 0; i < object->size(); ++i )
for( int j = 0; j < data->size(); ++j )
if( conditionMet )
{
newValue = data.at(j)
objects[i].value = newValue //Line of error
break;
}
}
class Object
{
public:
QString value;
}
导致此错误的原因是什么?
当您想要将新值设置为 value
时,您实际上并没有取消引用 objects
。您需要使用 *
运算符来执行此操作。
void Class::linkValueToObject(QVector<Object>* objects, QStringList* data )
{
for( int i = 0; i < object->size(); ++i )
for( int j = 0; j < data->size(); ++j )
if( conditionMet )
{
newValue = data.at(j)
(*objects)[i].value = newValue //Line of error
break;
}
}