12 void move(double dx, double dy);
13 virtual double area(void) = 0;
14 virtual double perimeter(void) = 0;
16 static int get_nshapes();
19 class Circle : public Shape {
23 Circle(double r) : radius(r) { }
25 void set_radius( double r );
26 virtual double area(void);
27 virtual double perimeter(void);
30 class Square : public Shape {
34 Square(double w) : width(w) { }
36 virtual double area(void);
37 virtual double perimeter(void);