14 void move(double dx, double dy);
15 virtual double area(void) = 0;
16 virtual double perimeter(void) = 0;
18 static int get_nshapes();
21 class Circle : public Shape {
25 Circle(double r) : radius(r) { }
27 virtual double area(void);
28 virtual double perimeter(void);
31 class Square : public Shape {
35 Square(double w) : width(w) { }
37 virtual double area(void);
38 virtual double perimeter(void);
41 const char *overloaded( int i );
42 const char *overloaded( double d );
43 const char *overloaded( const char * str );
44 const char *overloaded( const Circle& );
45 const char *overloaded( const Shape& );