C++ virtual destructor. Зачем?
C c++ активно работаю больше 10 лет. Так что объьяснять в коментах как работает вируалый деструктон не нужно. Но кто-то может обьяснить почему его не сделали виртуальным по умолчанию?
В принципе компилятор сам способен розобратся когда его делать виртуальным. Или можно считать его виртаульным всегда и добавить в язык конструкцию позволяющую удалить его из таблицы виртуальных ф-ция если нужно.
Вместо этого он не виртуальный по умолчанию. Из-за него возникает куча багов у джуников, и куча дурацких вопросов на собеседованиях. Сложно привести пример другого языка програмирования с подобной конструкцией.
Может кто-то обьяснить почем у они задизайнили язык так? Сейчас даже редакторы когда создают класс из шаблона делают конструктор виртуальным... Возможно Страуструп & Co пробовали что-то сэкономить? но там реальной экономии памяти практически нету да и компиляторы способны это оптимизировать. Тоесть выбраный подход кроме проблем ничего не создает
57 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів