Static member functions.
#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 GetHowMany() { return count; } private: int itsAge; static int count; }; int Cat::count = 0; void TelepathicFunction(); int main() { const int MaxCats = 5; Cat *CatHouse[MaxCats]; int i; for (i = 0; i<MaxCats; i++) { CatHouse[i] = new Cat(i); cout << "There are " << Cat::GetHowMany() << " cats alive!\n"; } for ( i = 0; i<MaxCats; i++) { delete CatHouse[i]; cout << "There are " << Cat::GetHowMany() << " cats alive!\n"; } return 0; }