venerdì, dicembre 01, 2006

un vettore dinamico "sicuro"

Ecco una possibile implementazione di un vettore dinamico "sicuro", cioe' che maschera il delete incorporandolo nel proprio distruttore.

#ifndef vettoreSimple_h
#define vettoreSimple_h

/** \class vettoreSimple
\brief un vettoreSimple dinamico sicuro
*/


template <class T>
class vettoreSimple
{
public :
//! costruttore
vettoreSimple (const int & elementsNum) :
m_elementsNum (elementsNum) ,
m_elements (new T [m_elementsNum])
{}
//! distruttore
~vettoreSimple ()
{
delete [] m_elements ;
}

//! ritorna un elemento (modificabile)
T &
elemento (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: