QVector operator []没有成员值

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)

导致此错误的原因是什么?

Xat*_*ian 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;
            }
}
Run Code Online (Sandbox Code Playgroud)