Название: QT контейнеры и указатель С++ Отправлено: MaxoBik от Май 08, 2015, 20:11 Есть такое поле класса:
QMap<int, QT_Some_Object*> * class_field; QT_Some_Object это класс QT, который не наследует от QObject. Так вот вопрос, если я удалю один из элементов из QMap::remove(int) - удалится ли указатель и целевой объект в куче на который он указывает? Название: Re: QT контейнеры и указатель С++ Отправлено: Old от Май 08, 2015, 20:15 Нет
Название: Re: QT контейнеры и указатель С++ Отправлено: MaxoBik от Май 08, 2015, 20:24 Нет Почему то удаления объекта вручную через delete ведет к крашу:Код: int key = 1; Название: Re: QT контейнеры и указатель С++ Отправлено: Racheengel от Май 08, 2015, 21:23 странно, вставляете в tempObject, а удаляете из class_field...
Название: Re: QT контейнеры и указатель С++ Отправлено: MaxoBik от Май 08, 2015, 21:32 странно, вставляете в tempObject, а удаляете из class_field... Да, опЯчатка, поправил. Но проблема не в этом, непонятно почему не удается удалить объект и указатель, если удалить до remove удаляется без проблем, после remove краш, но указатель после remove не удаляется, т.е. не null.ПС, все нашел в чем проблема, она не в remove, в моем коде. |