//: C06:Counted.h // From "Thinking in C++, Volume 2", by Bruce Eckel & Chuck Allison. // (c) 1995-2004 MindView, Inc. All Rights Reserved. // See source code use permissions stated in the file 'License.txt', // distributed with the code package available at www.MindView.net. // 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; } }; class CountedVector : public std::vector { public: CountedVector(char* id) { for(int i = 0; i < 5; i++) push_back(new Counted(id)); } }; #endif // COUNTED_H ///:~