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

时间:2017-08-11 09:21:48

标签: c++ qlist

我正在使用在我的对象中构建QList

QList<clsXMLnode*> mlstChildren;

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

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

当我使用调试器进行单步时,我可以看到pobjChild具有它应该与之关联的所有静态数据,但是附加到'mlstChildren'的节点没有静态成员。使用调试器我可以看到'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,类地址匹配pobjChild,静态数据的内容不匹配。

0 个答案:

没有答案