с, в котором вы хотите организ
Автор admin
Четверг, 21 мая 2009 11:32
с, в котором вы хотите организовать подсчет объектов. Стандартный объектно-ориентированный подход, применяемый, чтобы организовать многократное или совместное использование кода, — наследование. Однако наследование в данном случае решает лишь половину проблемы. Посмотрите, что происходит при включении логики подсчета объектов в базовый класс: //: C05:CountedClass2.cpp // Неправильная попытка подсчета объектов #include using namespace std: class Counted { static int count: public: CountedО { ++count: } Counted(const Counted&) { ++count: } -CountedO { –count: } static int getCountO { return count; } }: int Counted::count – 0: class CountedClass : public Counted {}: class CountedClass2 : public Counted {}; int mainO { CountedClass a: cout « CountedClass::getCountO « endl; // 1 CountedClass b; 234 Глава 5 • Шаблоны cout « CountedClass::getCount() « endl: // 2 CountedClass2 c: cout « CountedClass2::getCount() « endl: // 3 (Ошибка) } ///:- Все классы, производные от Counted, используют одну статическую переменную, поэтому количество объектов отслеживается сразу по всем классам иерархи
Комментарии закрыты.
Последние комментарии