/tags/rel-1-3-26/SWIG/Examples/lua/class/example.h

# · C++ Header · 39 lines · 30 code · 8 blank · 1 comment · 0 complexity · 5e779aa058486ca8df62b7c4123a9ad1 MD5 · raw file

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