我正在尝试将数据保存到成员值similarly to this
我有一个包含成员变量的QVector对象。禁止使用.at()
,因为我尝试转换const,.value()
不保存更改,因为它只是一个实例。
我尝试使用[]运算符返回对象的非const引用,以便更改成员变量的值我如何得到错误
class QVector<Object>' has no member named 'value'
objects[i].value = newValue;
^
以下是使用缩短的类导致错误的代码段:
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;
}
导致此错误的原因是什么?
答案 0 :(得分:7)
如果要将新值设置为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;
}
}