home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 13 / CDA13.ISO / cdactual / demobin / share / program / C / ANSICPP.ZIP / EX07032.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1990-07-24  |  812 b   |  37 lines

  1. // ex07032.cpp
  2. // Class-specific new and delete operators with constructor, destructor
  3. #include <iostream.h>
  4.  
  5. class Name    {
  6.     char name[25];
  7. public:
  8.     Name()  { cout << "\nName constructor running"; }
  9.     ~Name() { cout << "\nName destructor running";    }
  10.     void *operator new(size_t);
  11.     void operator delete(void *);
  12. };
  13.  
  14. // -------- simple memory pool to handle one Name
  15. char pool [sizeof(Name)];
  16.  
  17. // -------- overloaded new operator for the Name class
  18. void *Name::operator new(size_t)
  19. {
  20.     cout << "\nName's new running";
  21.     return pool; 
  22. }
  23.  
  24. // --------- overloaded delete operator for the Name class
  25. void Name::operator delete(void *p)
  26. {
  27.     cout << "\nName's delete running";
  28. }
  29.  
  30. main()
  31. {
  32.     cout << "\nBuilding a new name";
  33.     Name *nm = new Name;
  34.     cout << "\nDeleting a name";
  35.     delete nm;
  36. }
  37.