QList,附加对象,丢失静态成员

QList, appending object, loosing static members

我正在我的对象中构建一个 QList

QList<clsXMLnode*> mlstChildren;

在我追加子节点的方法中:

void clsXMLnode::appendChild(clsXMLnode* pobjChild) {
assert(pobjChild != NULL);
mlstChildren.append(pobjChild);
// ...

当我使用调试器单步执行时,我可以看到 pobjChild 具有它应该与之关联的所有静态数据,但是附加到 'mlstChildren' 的节点具有 none 的静态成员。使用调试器我可以看到 'pobjChild' 仍然正确,而 'mlstChildren' 虽然它具有相同的子节点指针地址,但它的内容与 'pobjChild' 的内容不匹配,为什么?

编辑:
这似乎是调试器中的错误,我修改了我的 appendChild 方法如下:

void clsXMLnode::appendChild(clsXMLnode* pobjChild) {
assert(pobjChild != NULL);
int intNewIdx = mlstChildren.length();
mlstChildren.append(pobjChild);
clsXMLnode* pobjCheck = mlstChildren.at(intNewIdx);
// ...

我可以在调试器中看到 pobjCheck 的内容与 pobjChild 的内容完全匹配并且所有静态成员都完好无损,但是如果我在调试器中展开 mlstChildren,虽然 class 地址匹配 pobjChild,但静态数据的内容不匹配。

这不是真正的答案,但我认为我已经证明它是 Qt 调试器中几个持续存在的错误之一,我已将其报告给 Qt 开发人员论坛:

https://forum.qt.io/topic/82279/debugger-and-static-data