ted(char* id) : ident(id) { co

Автор admin Среда, 3 июня 2009 11:32

ted(char* id) : ident(id) { count++: } -CountedО { std::cout « ident « ” count = ” « –count « std::endl; } }: class CountedVector : public std::vector { public: CountedVector(char* id) { for(int i = 0: i < 5: i++) push_back(new Counted(id)): } }: #endif // C0UNTED_H ///:- //: C06:Counter.cpp {0} #include "Counted.h" Каталог алгоритмов STL 315 int Counted::count = 0; ///:- Класс Counted содержит статический счетчик созданных объектов и выводит сообщения об их уничтожении1. Каждый объект Counted снабжается идентификатором char*, чтобы за ним было удобнее следить. Класс CountedVector объявлен производным от vector. В конструкторе он создает несколько объектов Counted и передает каждому из них заданный идентификатор char*. Класс CountedVector существенно упрощает тестирование, о чем наглядно свидетельствует следующий пример: //: C06:ForEach.cpp // Использование алгоритма STL for_each() //{L} Counted linclude #i nclude #include “Counted.h” using namespace std: // Объект функции: tempiate class Delete!” { public: void operator^)(T* x) { delete x; } }: //


Комментарии закрыты.