Static members of a C++ class
We can
define class members static using static
keyword. When we declare a member of a class as static it means no matter how
many objects of the class are created, there is only one copy of the static
member.
A static
member is shared by all objects of the class. All static data is initialized to
zero when the first object is created, if no other initialization is present.
We can't put it in the class definition but it can be initialized outside the
class as done in the following example by re-declaring the static variable,
using the scope resolution operator ::
to identify which class it belongs to.
Let us
try the following example to understand the concept of static data members:
~IntArray()
{
#include<iostream>
usingnamespacestd;
classBox
{
public: staticintobjectCount;
// 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++;
}
doubleVolume()
{
return length * breadth * height;
}
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
intBox::objectCount=0;
int main(void)
{
BoxBox1(3.3,1.2,1.5);// Declare box1
BoxBox2(8.5,6.0,2.0);// Declare box2
// Print total number of objects.
cout<<"Total
objects: "<<Box::objectCount<<endl;
return0;
}
When the
above code is compiled and executed, it produces the following result:
Constructor called.
Constructor called.
Total objects:2
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.