diff options
Diffstat (limited to 'Examples/python/mpointer/example.h')
-rw-r--r-- | Examples/python/mpointer/example.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Examples/python/mpointer/example.h b/Examples/python/mpointer/example.h new file mode 100644 index 000000000..110fe91c1 --- /dev/null +++ b/Examples/python/mpointer/example.h @@ -0,0 +1,50 @@ +/* File : example.h */ + +class Shape { +public: + Shape() { + nshapes++; + } + virtual ~Shape() { + nshapes--; + }; + double x, y; + double *z; + + void move(double dx, double dy); + virtual double area(void) = 0; + virtual double perimeter(void) = 0; + static int nshapes; +}; + +class Circle : public Shape { +private: + double radius; +public: + Circle(double r) : radius(r) { }; + virtual double area(void); + virtual double perimeter(void); +}; + +class Square : public Shape { +private: + double width; +public: + Square(double w) : width(w) { }; + virtual double area(void); + virtual double perimeter(void); +}; + +extern double do_op(Shape *s, double (Shape::*m)(void)); + +/* Functions that return member pointers */ + +extern double (Shape::*areapt())(void); +extern double (Shape::*perimeterpt())(void); + +/* Global variables that are member pointers */ +extern double (Shape::*areavar)(void); +extern double (Shape::*perimetervar)(void); + + + |