home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / IDIOMS.ZIP / EV2TRI.H < prev    next >
C/C++ Source or Header  |  1991-12-04  |  2KB  |  49 lines

  1. /* Copyright (c) 1992 by AT&T Bell Laboratories. */
  2. /* Advanced C++ Programming Styles and Idioms */
  3. /* James O. Coplien */
  4. /* All rights reserved. */
  5.  
  6. //************************************************************//
  7. //                                                            //
  8. //     F I L E :    E V 2 T R I . H                           //
  9. //                                                            //
  10. //         Modified interface for class Triangle (Version 2)  //
  11. //                                                            //
  12. //************************************************************//
  13.  
  14. #define _TRIANGLE_H
  15. #ifndef _SHAPEREP_H
  16. #include "eshaprp.h"
  17. #endif
  18. #ifndef _COORDINATE_H
  19. #include "ecoord.h"
  20. #endif
  21.  
  22. class Triangle: public ShapeRep {
  23. public:
  24.     // Just like Triangle.h, except set up for a
  25.     // new definition of Triangle::move
  26.     Shape make();
  27.     Shape make(Coordinate, Coordinate, Coordinate);
  28.     Triangle();
  29.     void draw();
  30.     void move(Coordinate);
  31.     void rotate(double);
  32.     void *operator new(size_t);
  33.     void operator delete(void *);
  34.     void gc(size_t = 0);
  35.     Triangle(Exemplar);
  36.     static void init();
  37. private:
  38.     static void poolInit(size_t);
  39.     Shape make(Coordinate) { return *aShape; }
  40.     Shape make(Coordinate, Coordinate) { return *aShape; }
  41.     Coordinate p1, p2, p3;
  42. private:
  43.     static char *heap;
  44.     static size_t poolInitialized;
  45.     enum { PoolSize = 10 };
  46. };
  47.  
  48. extern ShapeRep *triangle;
  49.