![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
wdefik |
![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 4.3.2010 Пользователь №: 1505 Спасибо сказали: 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 будет уничтожать такой объект? Наверное нужно читать документацию, но, к сожалению нет времени, так что ненавязчиво прошу просветить меня по этому вопросу? Корректен ли такой код? не будет ли утечек памяти? Новичок. Не пинать. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 14.6.2025, 13:00 |