diff options
Diffstat (limited to 'Examples/modula3/class/example.h')
| -rw-r--r-- | Examples/modula3/class/example.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Examples/modula3/class/example.h b/Examples/modula3/class/example.h new file mode 100644 index 0000000..9c1f479 --- /dev/null +++ b/Examples/modula3/class/example.h @@ -0,0 +1,44 @@ +/* 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; +}; |
