home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / C++ / Snippets / QD3D Juggler / Juggler Sources / CObjectMaker.h < prev    next >
Encoding:
Text File  |  1995-12-27  |  555 b   |  30 lines  |  [TEXT/CWIE]

  1. //
  2. //    CObjectMaker.h
  3. //
  4. //    Template class CObjectMaker
  5. //    A template for C++ classes that construct QuickDraw 3D objects.
  6. //
  7. //    This is an abstract class.
  8. //    Everything is inline, so there is no *.cp file.
  9. //
  10. //    by James Jennings
  11. //    November 26, 1995
  12. //
  13.  
  14. #pragma once
  15.  
  16. template <class T>
  17. class CObjectMaker {
  18. protected:
  19.                 CObjectMaker() : mObject(0) {}
  20.     virtual        ~CObjectMaker()
  21.                     { if (mObject) ::Q3Object_Dispose(mObject); }
  22.     
  23.     virtual void    Make() = 0;
  24. public:
  25.             T        Get()
  26.                         { if (!mObject) Make(); return mObject; }
  27. protected:
  28.     T        mObject;
  29. };
  30.