new example

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5444 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Dave Beazley 2003-11-30 18:51:05 +00:00
commit d9dc0ad9d9
5 changed files with 182 additions and 0 deletions

View file

@ -0,0 +1,48 @@
/* File : example.c */
#include "example.h"
#include <math.h>
#ifndef M_PI
# define M_PI 3.14159265358979323846
#endif
/* Move the shape to a new location */
void Shape::move(double dx, double dy) {
x += dx;
y += dy;
}
int Shape::nshapes = 0;
double Circle::area(void) {
return M_PI*radius*radius;
}
double Circle::perimeter(void) {
return 2*M_PI*radius;
}
double Square::area(void) {
return width*width;
}
double Square::perimeter(void) {
return 4*width;
}
double do_op(Shape *s, double (Shape::*m)(void)) {
return (s->*m)();
}
double (Shape::*areapt())(void) {
return &Shape::area;
}
double (Shape::*perimeterpt())(void) {
return &Shape::perimeter;
}
/* Member pointer variables */
double (Shape::*areavar)(void) = &Shape::area;
double (Shape::*perimetervar)(void) = &Shape::perimeter;