![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Litkevich Yuriy |
![]()
Сообщение
#1
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Никак не могу въехать в виртуальный деструктор.
Есть некая программа написанная с использованием Qt, работает стабильно. При развитии программы, она может падать в некий момент времени, обычно при взаимодействии с пользовательским интерфейсом. Но чаще возникает авария при завершении работы. Эту ситуацию можно пердотвратить в ведя в один из классов пустой, ничего не делающий, виртуальный деструктор. Речь идёт о наследнике либо QObject, либо QWidget. Может кто-нибудь объяснить, как может влиять создание руками виртуального деструктора, при условии, что его тело пустое? |
|
|
![]() |
kwisp |
![]()
Сообщение
#2
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
хм, выяснилась интересная вещь. Ни Креатор, ни Студия (№6, №9) просто не позволяют так сделать ещё на уровне линковки ты в первом посте верно написал - при вызове виртуальных функций из деструктора - просто напросто вызовутся функции того класса чей деструктор а не предков. что стандарт по этому поводу говорит конечно интересно. а не линкуется, потому что получается вызов чисто виртуальной функции. Раскрывающийся текст
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 12.6.2025, 6:00 |