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