Re[7]: А когда может не вызываться деструктор?
От: sts  
Дата: 25.01.13 18:40
Оценка:
Здравствуйте, Abyx, Вы писали:

A>Здравствуйте, rg45, Вы писали:


A>>>>>

A>>>>>В языке программирования C++ деструктор полиморфного базового класса должен объявляться виртуальным.
A>>>>>Только так обеспечивается корректное разрушение объекта производного класса через указатель на соответствующий базовый класс.


R>>Да, к сожалению, авторы статьи не дали четкого определения, что они понимают под полиморфным классом. Из общего контекста статьи можно догадаться, что они вкладывали в это понятие более широкий смысл — класс, объекты которого могут не только использоваться, но и удаляться через указатель базового класса (именно этому вопросу в статье уделено много внимания). Конечно же, это недочет, неточность формулировки, но еще не повод разбрасываться ярлыками типа "чушь" и "говносайт".


A>вот поэтому статья и говно, раз там написана чушь наподобие "раз полиморфный — значит ДОЛЖЕН быть виртуальный деструктор".

A>про весь сайт я может погорячился, хотя раз там есть статья такого качества — наверное и весь сайт такой.

A>у термина "полиморфный (класс)" есть вполне конкретное определение.

A>то что на это определение наложено ограничение, что объекты потомков такого класса будут удаляться через delete — это называется "более узкий смысл".

ожидается, что деструктор будет полиморфным
так же как ожидается, что из него не будет выкинуто исключение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.