| /* 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); | |
| } | |