| /* File : example.h */ |
| |
| class Shape |
| { |
| public: |
| Shape () |
| { |
| nshapes++; |
| } |
| virtual ~ Shape () |
| { |
| nshapes--; |
| }; |
| double x, y; |
| void move (double dx, double dy); |
| virtual double area (void) const = 0; |
| virtual double perimeter (void) const = 0; |
| protected: |
| static int nshapes; |
| }; |
| |
| class Circle:public Shape |
| { |
| private: |
| double radius; |
| public: |
| Circle (double r):radius (r) |
| { |
| }; |
| virtual double area (void) const; |
| virtual double perimeter (void) const; |
| }; |
| |
| class Square:public Shape |
| { |
| private: |
| double width; |
| public: |
| Square (double w):width (w) |
| { |
| }; |
| virtual double area (void) const; |
| virtual double perimeter (void) const; |
| }; |