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: