import source from 1.3.40
[external/swig.git] / Examples / modula3 / class / example.h
1 /* File : example.h */
2
3 class Shape
4 {
5 public:
6   Shape ()
7   {
8     nshapes++;
9   }
10   virtual ~ Shape ()
11   {
12     nshapes--;
13   };
14   double x, y;
15   void move (double dx, double dy);
16   virtual double area (void) const = 0;
17   virtual double perimeter (void) const = 0;
18 protected:
19   static int nshapes;
20 };
21
22 class Circle:public Shape
23 {
24 private:
25   double radius;
26 public:
27     Circle (double r):radius (r)
28   {
29   };
30   virtual double area (void) const;
31   virtual double perimeter (void) const;
32 };
33
34 class Square:public Shape
35 {
36 private:
37   double width;
38 public:
39     Square (double w):width (w)
40   {
41   };
42   virtual double area (void) const;
43   virtual double perimeter (void) const;
44 };