home *** CD-ROM | disk | FTP | other *** search
/ Game.EXE 2002 May / Game.EXE_05_2002.iso / Alawar / Lib / AutoPtr.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-03-27  |  882 b   |  60 lines

  1. #ifndef AUTOPTR_H
  2. #define AUTOPTR_H
  3.  
  4. #include <Nocopy.h>
  5.  
  6. template<typename T>
  7. class AutoPtr
  8. {
  9.     const AutoPtr & operator=(const AutoPtr & );
  10. public:
  11.     AutoPtr( T * ptr = 0)
  12.         :    ptr( ptr )
  13.     {}
  14.     // ▌≥ε≥ Ωεφ±≥≡≤Ω≥ε≡ ΓΩδ■≈σφ ≥εδⁿΩε Σδ  BCC5.5, Ωε≥ε≡√Θ φσ∩≡αΓΦδⁿφε
  15.     // εß≡αßα≥√Γασ≥ ∩≡αΓΦδε, ≈≥ε ∩σ≡Γεσ ∩≡Φ±ΓεσφΦσ σ±≥ⁿ ΦφΦ÷ΦαδΦτα÷Φ 
  16.     AutoPtr(const AutoPtr & au)
  17.         :    ptr( au.ptr )
  18.     {
  19.         au.ptr = 0;
  20.     }
  21.     ~AutoPtr()
  22.     {
  23.         delete ptr; ptr = 0;
  24.     }
  25.     T * operator->()const
  26.     {
  27.         return ptr;
  28.     }
  29.     T & operator*()const
  30.     {
  31.         return *ptr;
  32.     }
  33.     operator T *()const
  34.     {
  35.         return ptr;
  36.     }
  37. private:
  38.     T * ptr;
  39. };
  40.  
  41. template<typename T>
  42. class AutoVecPtr : private Nocopy
  43. {
  44. public:
  45.     AutoVecPtr( T * ptr = 0)
  46.         :    ptr( ptr )
  47.     {}
  48.     ~AutoVecPtr()
  49.     {
  50.         delete [] ptr; ptr = 0;
  51.     }
  52.     operator T *()const
  53.     {
  54.         return ptr;
  55.     }
  56. private:
  57.     T * ptr;
  58. };
  59.  
  60. #endif //AUTOPTR_H