C++, виртуальный деструктор |
Здравствуйте, гость ( Вход | Регистрация )
C++, виртуальный деструктор |
kwisp |
18.8.2010, 13:41
Сообщение
#31
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
Алексей1153,
хитрец ты вызываешь не чисто виртуальную функцию а переорпеделенную. рассмотри пример у меня в посте выше и вывод на консоль. |
|
|
DEADHUNT |
18.8.2010, 13:41
Сообщение
#32
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
что тут верить то Проверить, и всё код собирается без ошибок. а в конце 10.4 (Abstract Classes) написано: Цитата Member functions can be called from a constructor (or destructor) of an abstract class; the effect of making a virtual call (10.3) to a pure virtual function directly or indirectly for the object being created (or destroyed) from such a constructor (or destructor) is undefined. в таких случаях лучше реализовывать чисто виртуальную функцию:
|
|
|
Алексей1153 |
18.8.2010, 13:57
Сообщение
#33
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
хитрец ты вызываешь не чисто виртуальную функцию а переорпеделенную. прошагай отладчиком - никакой хитрости Или я просто не понял, что ты имел в виду под "вызов чистых виртуальных функций". Ведь в классе A - это и есть есть чистая Сообщение отредактировал Алексей1153 - 18.8.2010, 13:58 |
|
|
DEADHUNT |
18.8.2010, 14:02
Сообщение
#34
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
|
|
|
Iron Bug |
18.8.2010, 15:03
Сообщение
#35
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
Может кто-нибудь объяснить, как может влиять создание руками виртуального деструктора, при условии, что его тело пустое? я уже писала: никак не влияет. просто лишний вызов или перераспределение кода при очередной компиляции скрывает ошибку потоков или затирания памяти. от пустого деструктора абсолютно ничего не прибавляется, виртуальный он или не виртуальный. |
|
|
Алексей1153 |
18.8.2010, 19:12
Сообщение
#36
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
DEADHUNT, понятно )
А я то понял, что про именно из A вызов говорилось Сообщение отредактировал Алексей1153 - 18.8.2010, 19:13 |
|
|
Litkevich Yuriy |
19.8.2010, 8:51
Сообщение
#37
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
вобщем шутки RunTime продолжаются.
Похоже, что чуваки утверждавшие, что qmake - для простеньких приложений, правы. И видимо я дорос до более сложного приложения. Прога падает при некоторых изменениях в исходнике. падает в самых неожиданных местах. Попытка добавить qDebug в выше стоящие по иерархии модули решает проблему (т.к. эти модули перекомпилируются). Проделал такой эксперимент. При возникновении проблем, в один из вышестоящих модулей добавляю пустую строку - это вызывает перекомпиляцию. И теперь прога работает стабильно. Не уж-то на CMake придётся переходить? Так не охота что-то изучать на середине проекта. |
|
|
Алексей1153 |
19.8.2010, 12:43
Сообщение
#38
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Litkevich Yuriy, а у тебя нигде директива не используется такая?
#pragma pack upd (всё, вопрос неактуален )) Внимательнее прочитал пост Юрия и понял, что это ни при чём) Сообщение отредактировал Алексей1153 - 19.8.2010, 12:44 |
|
|
DEADHUNT |
19.8.2010, 14:23
Сообщение
#39
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
|
|
|
BRE |
19.8.2010, 14:25
Сообщение
#40
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
Текстовая версия | Сейчас: 30.11.2024, 15:48 |