git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10951 626c5289-ae23-0410-ae9c-e8d60b6d4f22
46 lines
659 B
C++
46 lines
659 B
C++
/* File : example.c */
|
|
|
|
#include "example.h"
|
|
|
|
#include <stdio.h>
|
|
|
|
#define M_PI 3.14159265358979323846
|
|
|
|
// Static member initializer
|
|
int Shape::nshapes = 0;
|
|
|
|
// Constructor
|
|
Shape::Shape() {
|
|
nshapes++;
|
|
}
|
|
|
|
// Move the shape to a new location
|
|
void Shape::move(double dx, double dy) {
|
|
x += dx;
|
|
y += dy;
|
|
}
|
|
|
|
// Destructor
|
|
Shape::~Shape() {
|
|
nshapes--;
|
|
}
|
|
|
|
// Circle area
|
|
double Circle::area() const {
|
|
return M_PI*radius*radius;
|
|
}
|
|
|
|
// Circle perimeter
|
|
double Circle::perimeter() const {
|
|
return 2*M_PI*radius;
|
|
}
|
|
|
|
// Square area
|
|
double Square::area() const {
|
|
return width*width;
|
|
}
|
|
|
|
// Square perimeter
|
|
double Square::perimeter() const {
|
|
return 4*width;
|
|
}
|