error: C2248: “QList<queueInfo *>::iterator::i”: 无法访问 private 成员(在“QList<queueInfo *>::iterator”类中声明) ..\QTCPP-master\parklot.cpp(37): error C2248: “QList<queueInfo *>::iterator::i”: 无法访问 private 成员(在“QList<queueInfo *>::iterator”类中声明) F:\QT\6.5.1\msvc2019_64\include\QtCore/qlist.h(104): note: 参见“QList<queueInfo *>::iterator::i”的声明 F:\QT\6.5.1\msvc2019_64\include\QtCore/qlist.h(101): note: 参见“QList<queueInfo *>::iterator”的声明
时间: 2023-07-02 09:22:13 浏览: 56
这个错误消息表明,您正在试图访问一个私有成员变量“i”,但该成员变量在“QList<queueInfo *>::iterator”类中声明为私有成员变量。为了解决这个问题,您需要更改访问级别或使用公共接口。
在这种情况下,您可以考虑使用公共接口来访问列表中的元素。例如,使用迭代器来遍历列表:
```cpp
QList<queueInfo*> myQueueList;
// 添加元素到列表
queueInfo* myQueue = new queueInfo();
myQueueList.append(myQueue);
// 遍历列表并访问元素
for (QList<queueInfo*>::iterator queueIter = myQueueList.begin(); queueIter != myQueueList.end(); ++queueIter)
{
// 使用迭代器访问元素
queueInfo* currentQueue = *queueIter;
// 使用 currentQueue 对象进行操作
}
```
请注意,这只是一个示例,您需要根据您的代码结构和需求来调整代码。另外,如果您必须访问私有成员变量,您可以考虑将该类声明为友元类或使用派生类来继承该类并访问其私有成员变量。
相关问题
moc_piecebing.cpp:-1: error: undefined reference to `PieceBing::moveToNew(QList<Piece*>*, int, int)'
这个错误通常是因为编译器无法找到 `PieceBing::moveToNew(QList<Piece*>*, int, int)` 的定义。请确保 `PieceBing` 类中有一个名为 `moveToNew` 的函数,并且在正确的位置进行了定义。另外,还要确认是否正确包含了相关的头文件。如果这些都没有问题,那可能是链接阶段出现了错误,你可以检查一下是否正确地链接了相关的库文件。
static QList<Decoder*> g_decoderList;怎么增加成员
在静态 QList 中增加成员需要使用静态成员函数,例如:
```cpp
class MyClass
{
public:
static QList<Decoder*> g_decoderList;
static void addDecoder(Decoder* decoder)
{
g_decoderList.append(decoder);
}
};
// 在类外初始化静态成员变量
QList<Decoder*> MyClass::g_decoderList = QList<Decoder*>();
// 在其他函数中调用 addDecoder 函数
Decoder* decoder = new Decoder();
MyClass::addDecoder(decoder);
```
在上面的示例中,我们定义了一个静态成员函数 `addDecoder`,它接受一个 Decoder 指针作为参数,并使用 `append()` 函数将其添加到静态 QList 中。在其他函数中调用 `addDecoder` 函数即可添加成员。
需要注意的是,由于静态成员变量是所有类对象共享的,因此必须在类外进行初始化。在上面的示例中,我们使用 `QList<Decoder*> MyClass::g_decoderList = QList<Decoder*>();` 在类外初始化了静态成员变量 `g_decoderList`。