|
ex5-4.cpp - Example 5-4 Static Member Function |
// File: ex5-4.cpp
#include <iostream>
using namespace std;
class Circle
{
private:
double radius_;
static unsigned numCircles_;
public:
Circle(double r = 1.0);
~Circle();
static void print_numCircles();
static void resetNumCircles();
};
unsigned Circle::numCircles_ = 0 ;
Circle::Circle(double r)
{
radius_ = r; numCircles_++;
}
Circle::~Circle()
{
numCircles_--;
}
void Circle::print_numCircles(void)
{
cout<< "number of Circles = " << numCircles_ <<endl;
}
void Circle::resetNumCircles(void)
{
numCircles_ = 0;
return;
}
int main(void)
{
Circle c1(5.);
Circle::print_numCircles();
Circle c2(4.);
Circle::print_numCircles();
Circle::resetNumCircles();
Circle::resetNumCircles();
Circle::print_numCircles();
Circle c3(1.);
Circle::print_numCircles();
return 0;
}
CIS27: Programming in C++ Instructor: Joe Bentley