/tags/rel-1-3-29/SWIG/Examples/php4/shadow/example.h

# · C++ Header · 43 lines · 36 code · 6 blank · 1 comment · 0 complexity · 603aca9bd046a82297d5d15f2d85a623 MD5 · raw file

  1. /* File : example.h */
  2. #include <stdio.h>
  3. class Shape {
  4. public:
  5. Shape() {
  6. nshapes++;
  7. }
  8. virtual ~Shape() {
  9. nshapes--;
  10. };
  11. double x, y;
  12. void move(double dx, double dy);
  13. virtual double area(void) = 0;
  14. virtual double perimeter(void) = 0;
  15. static int nshapes;
  16. static int get_nshapes();
  17. };
  18. class Circle : public Shape {
  19. private:
  20. double radius;
  21. public:
  22. Circle(double r) : radius(r) { };
  23. ~Circle() { };
  24. void set_radius( double r );
  25. virtual double area(void);
  26. virtual double perimeter(void);
  27. };
  28. class Square : public Shape {
  29. private:
  30. double width;
  31. public:
  32. Square(double w) : width(w) { };
  33. ~Square() { }
  34. virtual double area(void);
  35. virtual double perimeter(void);
  36. };
  37. Circle *CircleFactory( double r );