venerdì, dicembre 15, 2006
giovedì, dicembre 14, 2006
giovedì, dicembre 07, 2006
venerdì, dicembre 01, 2006
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
Pubblicato da Unknown alle 10:34 0 commenti
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
Pubblicato da Unknown alle 10:33 0 commenti
Iscriviti a:
Post (Atom)