A. Fig Lee wrote:Vovka wrote:ballymahon wrote:8K wrote:uncle_Pasha wrote:yocto wrote:uncle_Pasha wrote:Если класс не задумывался как базовый, почему бы не использовать струцт?
Так ведь объявление типа через струцт не запрещает наследование.
Оно объясняет смысл данного элемента данных.
99% что никому не прийдет в голову наследоваться от струцт в дальнейшем
Неужели нельзя "запечатать" класс собственными средствами С++? Не верю.
А как интересно? Можно конечно не использовать виртуальных функций и протецтед членов (о чем уже упоминалось) и тогда от наследования не будет особого толку, хотя сама возможность и будет присутствовать.
Как запретить наследование от данного класса - разве что сделать все конструкторы приватными и создавать обьекты статической функцией?
На самом деле, даже не наследование запрещать надо, а удаление через указатель на базовый класс.
А для этого достаточно сделать _невитруальный_ деструктор протецтед.
Ну все, дожились. За что боролись, на то и напоролись. Страуструп думал-думал всюночь, наверное. Придумал. Пришел Вовка и все почикал.Ееее... Есь такой хороший язык - С называется или Ява - там тоже много чего почикано. Рекомендую.
Пошто имя трупово всуе употребляете?
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
В с чем несогласны-то?
Действительно, наследовать от класса с невиртуальным деструктором можно. Удалять через указатель на базовый - нельзя. Для того, чтобы это предотвратить - делаем деструктор базового класса protected. Чего тут неясно?
![HBZ :pain1:](./images/smilies/pain25.gif)