8 void move(double dx, double dy);
9 virtual double area() const = 0;
10 virtual double perimeter() const = 0;
14 class Circle : public Shape {
18 Circle(double r) : radius(r) { };
19 virtual double area() const;
20 virtual double perimeter() const;
23 class Square : public Shape {
27 Square(double w) : width(w) { };
28 virtual double area() const;
29 virtual double perimeter() const;