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;
            }
}