/trunk/Examples/modula3/class/example.h
C++ Header | 44 lines | 40 code | 3 blank | 1 comment | 0 complexity | d0c3da92d5e5168b5e1f2b3cc06e95ae MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- /* 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;
- };