home *** CD-ROM | disk | FTP | other *** search
- //: C21:Counted.h
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- // An object that keeps track of itself
- #ifndef COUNTED_H
- #define COUNTED_H
- #include <vector>
- #include <iostream>
-
- 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<Counted*> {
- public:
- CountedVector(char* id) {
- for(int i = 0; i < 5; i++)
- push_back(new Counted(id));
- }
- };
- #endif // COUNTED_H ///:~
-