Uses of static class data

Uses of static class data.

1. To provide access control mechanism to some shared resource used by all the objects of a class
2. To keep track of no of objects in existence of a particular class
- Following example illustrates first case, to make use of static data member for access control :
#include <iostream>
using namespace std;
class MyClass
{
   static int resource;
   public:
       int get_resource()
       {
          if (resource)
             return 0;
          else
          {
             resource = 1;
             return 1;
          }
       }
   void free_resource()
   {
       resource =0;
   }
};

int MyClass::resource;

int main()
{
   MyClass ob1, ob2;
   if(ob1.get_resource())
   cout <<”Resources with ob1”;
   if(!ob2.get_resource())
   cout <<”Resources denied to ob2”;
   ob1.free_resource();
   return 0;
}
- Thus, the static member variable resource makes sure at a time only one object can access it.
- Now, consider the second use: to keep track of no of objects :
#include <iostream>
using namespace std;
class MyClass
{
   public:
       static int cnt;
       MyClass()
       {
          cnt++;
       }
       ~MyClass()
       {
          cnt--;
       }
};

void func()
{
   MyClass temp;
   cout << “No of Objects : “<< MyClass::cnt<<”\n”;
}

int MyClass::cnt;

int main()
{
   cout <<”Entered main()\n”: MyClass ob1;
   cout << “No of Objects : “<< MyClass::cnt <<”\n”;

   MyClass ob2;
   cout << “No of Objects : “<< MyClass::cnt<<”\n”;

   func();
   cout << “No of Objects : “<< MyClass::cnt<<”\n”;

   return 0;
}
- The Output would be :
Entered main()
No of Objects: 1
No of Objects: 2
No of Objects: 3
No of Objects: 2
- Thus, only one copy of static member variable cnt is maintained for all the objects created and its value is incremented or decremented whenever and object is created or destroyed.
What are static and dynamic type checking?
What are static and dynamic type checking? - Type checking is the operation on which the arguments that can only be applied for...
What are static variables?
What are static variables? - Static variables are the variables which has exactly one copy per class...
What are volatile variables?
What are volatile variables? - A volatile variable is a variable which is modified asynchronously by the threads that are concurrently running in a java application......
Post your comment