Здравствуйте, Abyx, Вы писали:
A>Здравствуйте, rg45, Вы писали:
A>>>>>A>>>>>В языке программирования C++ деструктор полиморфного базового класса должен объявляться виртуальным.
A>>>>>Только так обеспечивается корректное разрушение объекта производного класса через указатель на соответствующий базовый класс.
R>>Да, к сожалению, авторы статьи не дали четкого определения, что они понимают под полиморфным классом. Из общего контекста статьи можно догадаться, что они вкладывали в это понятие более широкий смысл — класс, объекты которого могут не только использоваться, но и удаляться через указатель базового класса (именно этому вопросу в статье уделено много внимания). Конечно же, это недочет, неточность формулировки, но еще не повод разбрасываться ярлыками типа "чушь" и "говносайт".
A>вот поэтому статья и говно, раз там написана чушь наподобие "раз полиморфный — значит ДОЛЖЕН быть виртуальный деструктор".
A>про весь сайт я может погорячился, хотя раз там есть статья такого качества — наверное и весь сайт такой.
A>у термина "полиморфный (класс)" есть вполне конкретное определение.
A>то что на это определение наложено ограничение, что объекты потомков такого класса будут удаляться через delete — это называется "более узкий смысл".
ожидается, что деструктор будет полиморфным
так же как ожидается, что из него не будет выкинуто исключение