Russian Qt Forum

Qt => Вопросы новичков => Тема начата: demaker от Июня 28, 2011, 14:53



Название: QОbject * parent
Отправлено: demaker от Июня 28, 2011, 14:53
Подскажите :) В конструкторе указывают QObject *parent = 0
затем в функции при создании данного объекта указывают ... = new ...(..., this );
типа в конструкторе запускается конструктор предка или как??? ???


Название: Re: QОbject * parent
Отправлено: Denjs от Июня 28, 2011, 14:57
this - это указатель на-самого-себя


Название: Re: QОbject * parent
Отправлено: Пантер от Июня 28, 2011, 15:00
Так создаваемому объекту назначают родителя. Родитель перед смертью убивает всех своих детей.


Название: Re: QОbject * parent
Отправлено: demaker от Июня 28, 2011, 15:02
И типа я прородитель самого себя или я создан в том потоке что и мой родитель??? не понял ??? ???


Название: Re: QОbject * parent
Отправлено: demaker от Июня 28, 2011, 15:03
И конкретнее, если можно пример ;D


Название: Re: QОbject * parent
Отправлено: Пантер от Июня 28, 2011, 15:08
Код
C++ (Qt)
MainWindow::MainWindow (QObject *parent)
: QMainWindow (parent)
{
 QObject *obj = new QObject (this);
}
 
В данном случае obj присваивается родитель MainWindow, который и будет теперь за него отвечать.
demaker, тебе нужно подтянуть знания по с++.


Название: Re: QОbject * parent
Отправлено: demaker от Июня 28, 2011, 15:28
Ok проработаю ;D


Название: Re: QОbject * parent
Отправлено: surendil от Июня 28, 2011, 17:30
А что происходит с объектами, для которых не задан parent (т.е. 0)?
Они всё же уничтожаются автоматически или их нужно руками в деструкторе?


Название: Re: QОbject * parent
Отправлено: NortT от Июня 28, 2011, 17:34
2demaker
QObject *parent = 0 - значение параметра по умолчанию, если ничего параметром не передаешь (this тот же), то родителя не будет.

2surendil
Ну да, delete надо делать.