C-классы
Метаданные
C-классы наследуется от класса CBase.
Класс CBase имеет следующие характеристики:
- При создании объекта в куче, благодаря перегруженному оператору new() его члены инициализируются нулями.
- CBase содержит виртуальный деструктор
- CBase содержит закрытые (private) конструктор копии и оператор присваивания
Поэтому возникают следующие особенности C-классов:
- Объекты этих классов всегда должны создаваться в куче (для гарантированного обнуление данных)
- Наследуют виртуальный деструктор, который правильно уничтожает данные
- Если необходимо копирование, нужно реализовать явный конструктор копии или оператор присваивания
C-классы обычно владеют другими C-классами или ресурсами, которые нуждаются в очистке. Так как эти ресурсы могут создаваться достаточно непросто (например, при создании/инициализации этих ресурсов может произойти сброс),
то для создания C-классов обычно используется механизм двухфазного конструирования.


ISO code for Russian language/country is RU not RUS. Please change the category accordingly.
ltomuta 12:07, 8 July 2007 (UTC)