adsense


Wednesday, 25 November 2015

C++ LANGUAGE STATIC FUNCTION MEMBERS

COMPUTER LANGUAGES HTML,C,C++.JAVA,.NET AND MULTIMEDIA basics and programs click home button



C++ LANGUAGE STATIC FUNCTION MEMBERS






Static Function Members 


By declaring a function member as static, you make it 
independent of any particular object of the class. 
A static member function can be called even if no 
objects of the class exist and the static functions 
are accessed using only the class name and the scope 
resolution operator ::. 

A static member function can only access static data 
member, other static member functions and any other 
functions from outside the class. 

Static member functions have a class scope and they do 
not have access to the this pointer of the class. You 
could use a static member function to determine whether 
some objects of the class have been created or not. 

Let us try the following example to understand the 
concept of static function members: 

#include <iostream> 
  
using namespace std; 
 
class Box 
{ 
   public: 
      static int objectCount; 
      // Constructor definition 
      Box(double l=2.0, double b=2.0, double h=2.0) 
      { 
         cout <<"Constructor called." << endl; 
         length = l; 
         breadth = b; 
         height = h; 
         // Increase every time object is created 
         objectCount++; 
      } 
      double Volume() 
      { 
         return length * breadth * height; 
      } 
      static int getCount() 
      { 
         return objectCount; 
      } 
   private: 
      double length;     // Length of a box 
      double breadth;    // Breadth of a box 
      double height;     // Height of a box 
}; 
 
// Initialize static member of class Box 
int Box::objectCount = 0; 
 
int main(void) 
{ 
   
   // Print total number of objects before creating object. 
   cout << "Inital Stage Count: " << Box::getCount() << endl; 
 
   Box Box1(3.3, 1.2, 1.5);    // Declare box1 
   Box Box2(8.5, 6.0, 2.0);    // Declare box2 
 
   // Print total number of objects after creating object. 
   cout << "Final Stage Count: " << Box::getCount() << endl; 
 
   return 0; 
} 
 
 
When the above code is compiled and executed, it produces the following result: 
Inital Stage Count: 0 
Constructor called. 
Constructor called. 
Final Stage Count: 2 


No comments: