//: C05:Counted.h // From Thinking in C++, 2nd Edition // Available at http://www.BruceEckel.com // (c) Bruce Eckel 2000 // Copyright notice in Copyright.txt // An object that keeps track of itself #ifndef COUNTED_H #define COUNTED_H #include #include class Counted { static int count; char* ident; public: Counted(char* id) : ident(id) { count++; } ~Counted() { std::cout << ident << " count = " << --count << std::endl; } }; int Counted::count = 0; class CountedVector : public std::vector { public: CountedVector(char* id) { for(int i = 0; i < 5; i++) push_back(new Counted(id)); } }; #endif // COUNTED_H ///:~