un vettore dinamico "sicuro" bis
Ecco una possibile implementazione di un vettore dinamico "sicuro", cioe' che maschera il delete incorporandolo nel proprio distruttore.
L'accesso agli elementi del vettore avviene tramite l'operatore overladed operator[]
#ifndef vettore_h
#define vettore_h
/** \class vettore
\brief un vettore dinamico sicuro
*/
template <class T>
class vettore
{
public :
//! costruttore
vettore (const int & elementsNum) :
m_elementsNum (elementsNum) ,
m_elements (new T [m_elementsNum])
{}
//! distruttore
~vettore ()
{
delete [] m_elements ;
}
//! ritorna un elemento
T &
operator[] (const int & i)
{
if (i<m_elementsNum) return m_elements[i] ;
else return m_elements[m_elementsNum-1] ;
}
private :
int m_elementsNum ;
T * m_elements ;
} ;
#endif
Nessun commento:
Posta un commento