Russian Qt Forum
Ноябрь 24, 2024, 07:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: operator delete  (Прочитано 3572 раз)
knyajich
Гость
« : Ноябрь 21, 2007, 00:24 »

Вопрос от «новичка» в работе с библиотекой Qt.

Глядя стандартные примеры библиотеки, я удивился тому, что, хотя динамические объекты создаются сплошь и рядом, нигде никогда не происходит вызова delete для их удаления!

Например,

Qt\4.1.0\examples\mainwindows\menus\mainwindow.h
Содержит указатели,

    QAction *newAct;
    QAction *openAct;
    QAction *saveAct;
    QAction *printAct;
    QAction *exitAct;

Которые инициализированы в конструктере –

openAct = new QAction(tr("&Open..."), this);
saveAct = new QAction(tr("&Save"), this);
printAct = new QAction(tr("&Print..."), this);
exitAct = new QAction(tr("E&xit"), this);

логично было бы увидеть их удаление в деструкторе, но пример ничего подобного не содержит. И при этом, вроде бы, не происходит утечки памяти.
Правильно ли я понял, что динамически созданные Qt-шные объекты можно не удалять, они удалятся сами?

То есть, например я могу написать так –

QTableWidget* table = new  QTableWidget(this);
table->setColumnCount(10);
table->setRowCount(10);

for (int i = 1; i<10; i++)
  for (int j = 1; j<10; j++)
   {
QTableWidgetItem* item = new QTableWidgetItem(QString().setNum(i+j)));
table->setItem(i,j,item);
   }

И не волноваться об удалении table и сотни item-ов?



Записан
QCasper
Гость
« Ответ #1 : Ноябрь 21, 2007, 00:42 »

Вкратце - да, можете. А вообще прочитайте книжку и assistant на предмет QObject
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #2 : Ноябрь 21, 2007, 00:51 »

Объекты порождённые от QObject и имеющие parent можно не удалять явно. Эти объекты будут удалены, когда будет убит parent.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
ритт
Гость
« Ответ #3 : Ноябрь 21, 2007, 01:37 »

есть ещё неявные родительско-дочерние связи (как, например, при добавлении кувиджетов, кулэоутов друг к другу)
однозначно - читать ассистант, прикреплённую ветку "Книги (статьи) по QT" и книги, названия которых встретятся в этой ветке Улыбающийся
Записан
knyajich
Гость
« Ответ #4 : Ноябрь 21, 2007, 01:44 »

спасибо большое!
а хелп я читаю во всю, просто не все сходу в нем находится )))
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 22.