Lia*_*abb 2 c++ qt const operators qvector
我试图将数据保存到与此类似的成员值
我有一个包含成员变量的QVector对象..at()禁止使用是因为我试图转换const,.value()不保存更改,因为它只是一个实例.
我尝试使用[]运算符返回对象的非const引用,以便更改成员变量的值我怎么得到错误
class QVector<Object>' has no member named 'value'
objects[i].value = newValue;
^
Run Code Online (Sandbox Code Playgroud)
以下是使用缩短的类导致错误的代码段:
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;
}
Run Code Online (Sandbox Code Playgroud)
导致此错误的原因是什么?
如果要将新值设置为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;
}
}
Run Code Online (Sandbox Code Playgroud)