0

我正在制作一个名为 ControlIcon 的自定义类的 QList。我创建了 ControlIcon,并使用成员变量加载它们,然后将它们添加到列表中。这是附加代码:

this->cueList.append(firstOne);

这是 QList 的声明:

QList< ControlIcon *> cueList;

如果我在追加后立即中断,我可以看到刚刚添加的 ControlIcon 充满了成员,并且看起来很好。我查看列表,并且已附加的 ControlIcon(它确实附加了一个 ControlIcon)根本没有任何成员。我之前制作了一个自定义对象的 QList,所以我很困惑。有人可以帮忙吗?

4

3 回答 3

0

您的自定义类必须是可赋值的,这意味着它必须提供默认构造函数、复制构造函数和赋值运算符。如果他们不这样做,就会发生这样的奇怪事情。

于 2011-02-08T15:29:50.310 回答
0

cueList包含指向ControlIcon对象的指针,但它不负责创建或保留这些ControlIcon对象。你是怎么得到指针的firstOne?如果它指向堆栈上的某个对象,那么当您稍后尝试使用它时,该对象将无效。如果它是使用 . 创建的new,它将一直有效,直到您使用delete.

于 2011-02-08T15:30:48.733 回答
0

我将列表的数据类型更改为 SerialController(ControlIcon 的子项),这是我试图添加到它的,它工作正常。这真的很烦人,因为还有其他类型的控制器,但我想它现在必须工作。

于 2011-02-09T15:46:32.813 回答