| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > empty BASE class |
| Автор: vitlic 13.4.2007, 14:58 |
| Недавно читал Мейрса. В его книжке описана оптимизация, которую он называет EBO, "Empty Base Optimization". Про оптимизацию я все понял, да и про нулевой размер, но не понял одного, когда появляется надобность в использование пустого базового класса? И что будет если с производным классом работать полиморфно (базовый класс пустой, значит дефолтный деструктор не виртуальный), не приведет ли это к утечкам памяти? пасиб заранее) |
| Автор: vitlic 13.4.2007, 15:23 | ||
понимаю суть, но не могу представить применения. В java все понятно, там один класс Object, от которого наследуют все, и это не приводит к утечкам памяти и т.д. Я не могу представить себе примера, когда могла бы понадобиться, такая не совершенная конструкция в с++. |
| Автор: Fazil6 13.4.2007, 15:36 | ||
а что в ней несовершенного? О EBO имеет смысл говорить, когда рассматривается вопрос о неоткрытом наследовании против композиции и всвязи с затратами памяти. Поэтому вобщем полиморфное использование вообще не расматривается. Пустой класс это класс не содержащий нестатических данных , виртуальных функций и виртуальных базовых классов, но ничего не мешает ему иметь невиртуальные функции, typedef, перечисления, статические данные (может еще что-то забыл). |