1 /* File : example.cxx */ 2 3 #include "example.h" 4 #define M_PI 3.14159265358979323846 5 6 /* Move the shape to a new location */ move(double dx,double dy)7void Shape::move(double dx, double dy) { 8 x += dx; 9 y += dy; 10 } 11 12 int Shape::nshapes = 0; 13 Circle(double r)14Circle::Circle(double r) : radius(r) { 15 NumCircles++; 16 } 17 area()18double Circle::area() { 19 return M_PI*radius*radius; 20 } 21 perimeter()22double Circle::perimeter() { 23 return 2*M_PI*radius; 24 } 25 Square(double w)26Square::Square(double w) : width(w) { 27 NumSquares++; 28 } 29 area()30double Square::area() { 31 return width*width; 32 } 33 perimeter()34double Square::perimeter() { 35 return 4*width; 36 } 37 38 int NumSquares = 0; 39 int NumCircles = 0; 40 MakeSquare(double r)41Square MakeSquare(double r) { 42 return Square(r); 43 } 44 MakeCircle(double w)45Circle MakeCircle(double w) { 46 return Circle(w); 47 } 48 49