1 # if ! defined( __PointerOf_HXX__ )
2 # define __PointerOf_HXX__
8 The template class PointerOf embedding a standard pointer (_pointer) is in charge of
9 managing a the pointed memory.
12 template <typename T> class PointerOf
19 PointerOf( const int &size ) ;
20 PointerOf( const T *pointer ) ;
23 operator const T*() const ;
25 //operator T*() const ;
27 void set( const int &size ) ;
28 void set( const T *pointer ) ;
29 PointerOf<T>& operator=( const PointerOf<T> &pointer ) ;
32 template <typename T> PointerOf<T>& PointerOf<T>::operator=( const PointerOf<T> &pointer )
34 BEGIN_OF("PointerOf<T>::operator=( const PointerOf<T> &pointer )") ;
35 if ( &pointer != this )
37 this->set( pointer._pointer ) ;
39 END_OF("PointerOf<T>::operator=( const PointerOf<T> &pointer )") ;
43 template <typename T> PointerOf<T>::PointerOf() : _pointer(0), _done(false)
47 template <typename T> PointerOf<T>::PointerOf( const int &size ) : _pointer( new T[ size ]), _done(true)
51 template <typename T> PointerOf<T>::PointerOf( const T* pointer ) : _pointer( (T*)pointer ), _done(false)
55 template <typename T> PointerOf<T>::~PointerOf()
61 MESSAGE("PointerOf<T>::~PointerOf() --> deleting _pointer") ;
67 MESSAGE("_pointer is only nullified") ;
73 template <typename T> PointerOf<T>::operator T*()
78 template <typename T> PointerOf<T>::operator const T*() const
83 // template <typename T> PointerOf<T>::operator T*() const
88 template <typename T> void PointerOf<T>::set( const int &size )
91 if ( _pointer && _done )
96 _pointer = new T[ size ] ;
100 template <typename T> void PointerOf<T>::set( const T *pointer )
102 MESSAGE( "PointerOf<T>::set( const T *pointer )" ) ;
105 if ( _pointer && _done )
107 MESSAGE("PointerOf<T>::set --> deleting _pointer") ;
112 _pointer=(T*)pointer ;
114 MESSAGE( "PointerOf<T>::set( const T *pointer )" ) ;
118 # endif /* # if ! defined( __PointerOf_HXX__ ) */