/* File : example.cxx */ #include "example.h" #define M_PI 3.14159265358979323846 /* Move the shape to a new location */ void Shape::move(double dx, double dy) { x += dx; y += dy; } int Shape::nshapes = 0; Circle::Circle(double r) : radius(r) { NumCircles++; } double Circle::area() { return M_PI*radius*radius; } double Circle::perimeter() { return 2*M_PI*radius; } Square::Square(double w) : width(w) { NumSquares++; } double Square::area() { return width*width; } double Square::perimeter() { return 4*width; } int NumSquares = 0; int NumCircles = 0; Square MakeSquare(double r) { return Square(r); } Circle MakeCircle(double w) { return Circle(w); }