我是 c++ 和 Qt 的新手,我正在尝试初始化一个 QVector,它是类初始化列表中的类成员,例如:
MyClass::MyClass(QWidget *parent) : QMainWindow(parent) , myVector(QVector<double>(100))
我原以为 QVector 已经分配了 100 个索引,但是当我尝试读取时,myVector[0]
我收到一个断言错误,说“test.exe 中 0x0143bf77 处的未处理异常:0xC0000005:访问冲突读取位置 0x00000004。” 程序停在 Qt 的这一行:
inline T &QVector<T>::operator[](int i)
{ Q_ASSERT_X(i >= 0 && i < d->size, "QVector<T>::operator[]", "index out of range");
return data()[i]; }
我相信这表明我正在尝试访问尚未分配的成员,所以我想我没有正确使用初始化列表。我可以让它成为一个指针并new QVector(100)
在构造函数中创建一个,但我想知道什么是错的,我怎样才能使它正确。