Accessing static members using non-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; } virtual int GetHowMany() { return count; } private: int itsAge; static int count; }; 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 << CatHouse[i]->GetHowMany(); cout << CatHouse[i]->GetAge()+2; delete CatHouse[i]; CatHouse[i] = 0; } return 0; }