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.
Output:
- Static data is initialized to zero when the first object is created, if no other initialization is present.
- Can't put it in the class definition but it can be initialized outside the class.
- Use the scope resolution operator :: to identify which class it belongs to.
#includeusing 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; } 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) { 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. cout << "Total objects: " << Box::objectCount << endl; return 0; }
Output:
Constructor called. Constructor called. Total objects: 2
No comments:
Post a Comment