Автор: denisKazachkov 26.6.2012, 15:25
Добрый день Уважаемые разработчики. У меня следующий вопрос...
есть функция:
void setO()
{
MyO *obj = new MyO();
QList<MyO*> list;
list.append(obj);
return list;
}
По завершению этой функции освободится ли память от объекта obj или надо удалять вручную
delete obj;
??????
Автор: ilyabvt 26.6.2012, 16:14
Цитата
По завершению этой функции освободится ли память от объекта obj или надо удалять вручную
delete obj;
От obj освободиться, а вот от объекта на который он указывает нет. Таки да, придется удалять вручную:
delete obj;
QList на это кстати никак не влияет. Он удаляет только объекты внутри контейнера и не переходит по ссылкам, даже если заполнен ими.
Автор: denisKazachkov 28.6.2012, 11:06
Цитата(ilyabvt @ 26.6.2012, 17:14)
Цитата
По завершению этой функции освободится ли память от объекта obj или надо удалять вручную
delete obj;
От obj освободиться, а вот от объекта на который он указывает нет. Таки да, придется удалять вручную:
delete obj;
QList на это кстати никак не влияет. Он удаляет только объекты внутри контейнера и не переходит по ссылкам, даже если заполнен ими.
Спасибо, помогли!
Автор: denisKazachkov 28.6.2012, 19:31
Еще такой вопрос.
Когда мы пишем delete obj;
Вызывается дестурктор объекта obj?
Автор: denisKazachkov 4.7.2012, 12:50
Цитата(Алексей1153 @ 28.6.2012, 20:43)
да, вызывается
Спасибо.