我正在制作一个名为ControlIcon的自定义类的QList。我创建了ControlIcons,并使用成员变量加载它们,然后将它们添加到列表中。这是附加代码:
this->cueList.append(firstOne);
这是QList的声明:
QList< ControlIcon *> cueList;
如果我在追加后立即中断,我可以看到刚刚添加的ControlIcon中充满了成员,并且显示正常。我查看列表,并且附加的ControlIcon(它附加了一个ControlIcon)根本没有成员。我以前做过自定义对象的QList,所以我很困惑。有人可以帮忙吗?
答案 0 :(得分:0)
您的自定义类必须是assignable,这意味着它必须提供默认构造函数,复制构造函数和赋值运算符。如果他们不这样做,可能会发生这样奇怪的事情。
答案 1 :(得分:0)
cueList
包含指向ControlIcon
个对象的指针,但它不负责创建或保留这些ControlIcon
个对象。你是如何得到指针firstOne
的?如果它指向堆栈上的某些内容,那么当您稍后尝试使用该对象时该对象将无效。如果它是使用new
创建的,则会一直有效,直到您使用delete
进行清理。
答案 2 :(得分:0)
我将列表的数据类型更改为SerialController(ControlIcon的子级),这是我试图添加到它的,它工作正常。这真的很烦人,因为还有其他类型的控制器,但我想它现在必须工作。