/tags/rel-1.3.35/Examples/php4/overloading/example.h
C++ Header | 46 lines | 39 code | 6 blank | 1 comment | 0 complexity | 896eca8ae658aee0e7d0bfeffbb552f1 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
1/* File : example.h */
2
3#include <stdio.h>
4
5class Shape {
6public:
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
21class Circle : public Shape {
22private:
23 double radius;
24public:
25 Circle(double r) : radius(r) { }
26 ~Circle() { }
27 virtual double area(void);
28 virtual double perimeter(void);
29};
30
31class Square : public Shape {
32private:
33 double width;
34public:
35 Square(double w) : width(w) { }
36 ~Square() { }
37 virtual double area(void);
38 virtual double perimeter(void);
39};
40
41char *overloaded( int i );
42char *overloaded( double d );
43char *overloaded( const char * str );
44char *overloaded( const Circle& );
45char *overloaded( const Shape& );
46