#include <iostream>
using std::cout;
using std::endl;
class Box {
public:
Box() {
cout << "Default constructor called" << endl;
++objectCount;
length = width = height = 1.0;
}
Box(double lvalue, double wvalue, double hvalue) :
length(lvalue), width(wvalue), height(hvalue) {
cout << "Box constructor called" << endl;
++objectCount;
}
double volume() const {
return length * width * height;
}
int getObjectCount() const {return objectCount;}
private:
static int objectCount;
double length;
double width;
double height;
};
int Box::objectCount = 0;
int main() {
cout << endl;
Box firstBox(17.0, 11.0, 5.0);
cout << "Object count is " << firstBox.getObjectCount() << endl;
Box boxes[5];
cout << "Object count is " << firstBox.getObjectCount() << endl;
cout << "Volume of first box = "
<< firstBox.volume()
<< endl;
const int count = sizeof boxes/sizeof boxes[0];
cout <<"The boxes array has " << count << " elements."
<< endl;
cout <<"Each element occupies " << sizeof boxes[0] << " bytes."
<< endl;
for(int i = 0 ; i < count ; i++)
cout << "Volume of boxes[" << i << "] = "
<< boxes[i].volume()
<< endl;
return 0;
}
Box constructor called
Object count is 1
Default constructor called
Default constructor called
Default constructor called
Default constructor called
Default constructor called
Object count is 6
Volume of first box = 935
The boxes array has 5 elements.
Each element occupies 24 bytes.
Volume of boxes[0] = 1
Volume of boxes[1] = 1
Volume of boxes[2] = 1
Volume of boxes[3] = 1
Volume of boxes[4] = 1