// File: ex5-3.cpp - static data member #include using namespace std; // function prototype void funk(); class Circle { private: double radius; static unsigned numCircles; public: Circle (double r = 1.0) : radius(r) { numCircles++;} Circle (const Circle& C) : radius(C.radius) { numCircles++;} ~Circle () {numCircles--;} void printCircleCount(); }; unsigned Circle::numCircles = 0; // static member definition void Circle::printCircleCount() { cout << "Number of Circles = " << numCircles << endl; } int main() { Circle c1(5.); c1.printCircleCount(); Circle c2; c2.printCircleCount(); c1.printCircleCount(); { Circle c3(1.5); c3.printCircleCount(); } c1.printCircleCount(); Circle c4(c1); c1.printCircleCount(); funk(); c1.printCircleCount(); } void funk() { Circle tempLocal; tempLocal.printCircleCount(); }