Home | | Object Oriented Programming and Data Structures | Static members of a C++ class

Chapter: Object Oriented Programming and Data Structure : Data Abstraction & Overloading

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.

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


Study Material, Lecturing Notes, Assignment, Reference, Wiki description explanation, brief detail
Object Oriented Programming and Data Structure : Data Abstraction & Overloading : Static members of a C++ class |


Privacy Policy, Terms and Conditions, DMCA Policy and Compliant

Copyright © 2018-2024 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.