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