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, содержимое статических данных нет.

1 ответ

Решение

Это не совсем ответ, однако я думаю, что я доказал, что это одна из нескольких текущих ошибок в отладчике Qt, о которых я сообщил на форуме разработчиков Qt:

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

Другие вопросы по тегам