Static member data.
#include <iostream> using namespace std; class Cat { public: Cat(int age):itsAge(age){count++; } virtual ~Cat() { count--; } virtual int GetAge() { return itsAge; } virtual void SetAge(int age) { itsAge = age; } static int count; private: int itsAge; }; int Cat::count = 0; int main() { const int MaxCats = 5; int i; Cat *CatHouse[MaxCats]; for (i = 0; i<MaxCats; i++) CatHouse[i] = new Cat(i); for (i = 0; i<MaxCats; i++) { cout << Cat::count; cout << CatHouse[i]->GetAge(); delete CatHouse[i]; CatHouse[i] = 0; } return 0; }