example.h 590 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /* File : example.h */
  2. class Shape
  3. {
  4. public:
  5. Shape() { nshapes++; }
  6. virtual ~Shape() { nshapes--; };
  7. double x, y;
  8. void move(double dx, double dy);
  9. virtual double area(void) = 0;
  10. virtual double perimeter(void) = 0;
  11. static int nshapes;
  12. };
  13. class Circle : public Shape
  14. {
  15. private:
  16. double radius;
  17. public:
  18. Circle(double r)
  19. : radius(r){};
  20. virtual double area(void);
  21. virtual double perimeter(void);
  22. };
  23. class Square : public Shape
  24. {
  25. private:
  26. double width;
  27. public:
  28. Square(double w)
  29. : width(w){};
  30. virtual double area(void);
  31. virtual double perimeter(void);
  32. };