static data members : static instance variable « Class « C++ Tutorial






#include <iostream>
 
 class MyClass
 {
 public:
     MyClass(int age = 1):intValue(age){
        InstanceCount++; 
     }
     virtual ~MyClass() { 
        InstanceCount--; 
     }
     virtual int getValue() { 
        return intValue; 
     }
     virtual void setValue(int age) { 
        intValue = age; 
     }
     static int InstanceCount;
 
 private:
     int intValue;
 
 };
 
 int MyClass::InstanceCount = 0;
 
 int main()
 {
     const int count = 5;
     MyClass *MyClassHouse[count];
     int i;
     for (i = 0; i<count; i++)
         MyClassHouse[i] = new MyClass(i);
 
     for (i = 0; i<count; i++)
     {
         std::cout << "There are ";
         std::cout << MyClass::InstanceCount;
         std::cout << " left!\n";
         std::cout << "Deleting the one which is ";
         std::cout << MyClassHouse[i]->getValue();
         delete MyClassHouse[i];
         MyClassHouse[i] = 0;
     }
     return 0;
 }
There are 5 left!
Deleting the one which is 0There are 4 left!
Deleting the one which is 1There are 3 left!
Deleting the one which is 2There are 2 left!
Deleting the one which is 3There are 1 left!
Deleting the one which is 4








9.25.static instance variable
9.25.1.Use a static instance variable
9.25.2.Refer to static variable through its class name
9.25.3.static data members