// www.tutorialspoint.com/cplusplus/cpp_static_members.htm
#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;
}
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;
}
Ly8gd3d3LnR1dG9yaWFsc3BvaW50LmNvbS9jcGx1c3BsdXMvY3BwX3N0YXRpY19tZW1iZXJzLmh0bQojaW5jbHVkZSA8aW9zdHJlYW0+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEJveCB7CiAgIHB1YmxpYzoKICAgICAgc3RhdGljIGludCBvYmplY3RDb3VudDsKICAgICAgCiAgICAgIC8vIENvbnN0cnVjdG9yIGRlZmluaXRpb24KICAgICAgQm94KGRvdWJsZSBsID0gMi4wLCBkb3VibGUgYiA9IDIuMCwgZG91YmxlIGggPSAyLjApIHsKICAgICAgICAgY291dCA8PCJDb25zdHJ1Y3RvciBjYWxsZWQuIiA8PCBlbmRsOwogICAgICAgICBsZW5ndGggPSBsOwogICAgICAgICBicmVhZHRoID0gYjsKICAgICAgICAgaGVpZ2h0ID0gaDsKICAgICAgICAgCiAgICAgICAgIC8vIEluY3JlYXNlIGV2ZXJ5IHRpbWUgb2JqZWN0IGlzIGNyZWF0ZWQKICAgICAgICAgb2JqZWN0Q291bnQrKzsKICAgICAgfQogICAgICBkb3VibGUgVm9sdW1lKCkgewogICAgICAgICByZXR1cm4gbGVuZ3RoICogYnJlYWR0aCAqIGhlaWdodDsKICAgICAgfQogICAgICAKICAgcHJpdmF0ZToKICAgICAgZG91YmxlIGxlbmd0aDsgICAgIC8vIExlbmd0aCBvZiBhIGJveAogICAgICBkb3VibGUgYnJlYWR0aDsgICAgLy8gQnJlYWR0aCBvZiBhIGJveAogICAgICBkb3VibGUgaGVpZ2h0OyAgICAgLy8gSGVpZ2h0IG9mIGEgYm94Cn07CgovLyBJbml0aWFsaXplIHN0YXRpYyBtZW1iZXIgb2YgY2xhc3MgQm94CmludCBCb3g6Om9iamVjdENvdW50ID0gMDsKCmludCBtYWluKHZvaWQpIHsKICAgQm94IEJveDEoMy4zLCAxLjIsIDEuNSk7ICAgIC8vIERlY2xhcmUgYm94MQogICBCb3ggQm94Mig4LjUsIDYuMCwgMi4wKTsgICAgLy8gRGVjbGFyZSBib3gyCgogICAvLyBQcmludCB0b3RhbCBudW1iZXIgb2Ygb2JqZWN0cy4KICAgY291dCA8PCAiVG90YWwgb2JqZWN0czogIiA8PCBCb3g6Om9iamVjdENvdW50IDw8IGVuZGw7CgogICByZXR1cm4gMDsKfQ==