crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Qt уничтожение дочерних объектов, при наследовании от интерфейсных классов
wdefik
  опции профиля:
сообщение 3.4.2010, 14:59
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 4.3.2010
Пользователь №: 1505

Спасибо сказали: 0 раз(а)




Репутация:   0  


сразу к проблеме:

необходимо, чтобы классы, унаследованные от QT-классов обладали некоторым общим дополнительным интерфейсом, необходимым в контексте некоторой задачи. Как правильно организовать наследование и уничтожение объектов таких классов средствами Qt ? QT при уничтожении родительского класса вызывает деструктор дочернего или может, как всегда, что-нибудь более изощренное?

т.е. например:

CODE
class Interface : public QWidget
{
public:
Interface(QWidget *parent) : QWidget(parent){}
virtual void func1()=0;
virtual void func2()=0;
virtual ~Interface(){}

};


class Derived : public Interface
{
Derived(QWidget *parent) : Interface(parent){}
virtual void func1(){}
virtual void func2(){}
~Derived(){}

};


int main(int argc, char* argv[])
{
QApplication app(argc, argv);

QMainWindow *ptr = new QMainWindow(0);

Interface *Iptr = new Derived(ptr);

return app.exec();

}


А теперь сам вопрос:

Как QT будет уничтожать такой объект? Наверное нужно читать документацию, но, к сожалению нет времени, так что ненавязчиво прошу просветить меня по этому вопросу?

Корректен ли такой код? не будет ли утечек памяти?

Новичок. Не пинать.


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 1:18