PageRenderTime 43ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/tags/rel-1.3.35/Examples/php4/overloading/example.h

#
C++ Header | 46 lines | 39 code | 6 blank | 1 comment | 0 complexity | 896eca8ae658aee0e7d0bfeffbb552f1 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  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. virtual double area(void);
  25. virtual double perimeter(void);
  26. };
  27. class Square : public Shape {
  28. private:
  29. double width;
  30. public:
  31. Square(double w) : width(w) { }
  32. ~Square() { }
  33. virtual double area(void);
  34. virtual double perimeter(void);
  35. };
  36. char *overloaded( int i );
  37. char *overloaded( double d );
  38. char *overloaded( const char * str );
  39. char *overloaded( const Circle& );
  40. char *overloaded( const Shape& );