mirror of https://github.com/swig/swig
51 lines
776 B
C++
51 lines
776 B
C++
/* File : example.cxx */
|
|
|
|
#include "example.h"
|
|
#include <math.h>
|
|
#ifndef M_PI
|
|
# define M_PI 3.14159265358979323846
|
|
#endif
|
|
|
|
int Shape::get_nshapes() {
|
|
return nshapes;
|
|
}
|
|
|
|
/* Move the shape to a new location */
|
|
void Shape::move(double dx, double dy) {
|
|
x += dx;
|
|
y += dy;
|
|
}
|
|
|
|
int Shape::nshapes = 0;
|
|
|
|
void Circle::set_radius( double r ) {
|
|
radius = r;
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
ShapeContainer::~ShapeContainer() {
|
|
for( iterator i = shapes.begin(); i != shapes.end(); ++i ) {
|
|
delete *i;
|
|
}
|
|
}
|
|
|
|
void
|
|
ShapeContainer::addShape( Shape *s ) {
|
|
shapes.push_back( s );
|
|
}
|