Classe CAutoVectorPtr
Questa classe rappresenta un oggetto puntatore intelligente utilizzando operatori vector new ed delete.
Importante
Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.
Sintassi
template<typename T>
class CAutoVectorPtr
Parametri
T
Tipo di puntatore.
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CAutoVectorPtr::CAutoVectorPtr | Costruttore. |
CAutoVectorPtr::~CAutoVectorPtr | Distruttore. |
Metodi pubblici
Nome | Descrizione |
---|---|
CAutoVectorPtr::Allocate | Chiamare questo metodo per allocare la memoria richiesta dalla matrice di oggetti a CAutoVectorPtr cui punta . |
CAutoVectorPtr::Attach | Chiamare questo metodo per acquisire la proprietà di un puntatore esistente. |
CAutoVectorPtr::D etach | Chiamare questo metodo per rilasciare la proprietà di un puntatore. |
CAutoVectorPtr::Free | Chiamare questo metodo per eliminare un oggetto a cui punta un oggetto CAutoVectorPtr . |
Operatori pubblici
Nome | Descrizione |
---|---|
CAutoVectorPtr::operator T * | Operatore cast. |
CAutoVectorPtr::operator = | Operatore di assegnazione . |
Membri dati pubblici
Nome | Descrizione |
---|---|
CAutoVectorPtr::m_p | Variabile membro dati del puntatore. |
Osservazioni:
Questa classe fornisce metodi per la creazione e la gestione di un puntatore intelligente, che consente di proteggere dalle perdite di memoria liberando automaticamente le risorse quando non rientra nell'ambito. CAutoVectorPtr
è simile a CAutoPtr
, l'unica differenza è che CAutoVectorPtr
usa vector new[]
e vector delete[]
per allocare e liberare memoria invece degli operatori e delete
C++new
. Vedere CAutoVectorPtrElementTraits se sono necessarie classi di raccolta di CAutoVectorPtr
.
Per un esempio di uso di una classe puntatore intelligente, vedere CAutoPtr .
Requisiti
Intestazione: atlbase.h
CAutoVectorPtr::Allocate
Chiamare questo metodo per allocare la memoria richiesta dalla matrice di oggetti a CAutoVectorPtr
cui punta .
bool Allocate(size_t nElements) throw();
Parametri
nElements
Numero di elementi nella matrice.
Valore restituito
Restituisce true se la memoria viene allocata correttamente, false in caso di errore.
Osservazioni:
Nelle compilazioni di debug si verificherà un errore di asserzione se la variabile membro CAutoVectorPtr::m_p punta attualmente a un valore esistente, ovvero non è uguale a NULL.
CAutoVectorPtr::Attach
Chiamare questo metodo per acquisire la proprietà di un puntatore esistente.
void Attach(T* p) throw();
Parametri
p
L'oggetto CAutoVectorPtr
assumerà la proprietà di questo puntatore.
Osservazioni:
Quando un CAutoVectorPtr
oggetto assume la proprietà di un puntatore, elimina automaticamente il puntatore e tutti i dati allocati quando escono dall'ambito. Se viene chiamato CAutoVectorPtr::D etach , al programmatore viene nuovamente assegnata la responsabilità di liberare tutte le risorse allocate.
Nelle compilazioni di debug si verificherà un errore di asserzione se la variabile membro CAutoVectorPtr::m_p punta attualmente a un valore esistente, ovvero non è uguale a NULL.
CAutoVectorPtr::CAutoVectorPtr
Costruttore.
CAutoVectorPtr() throw();
explicit CAutoVectorPtr(T* p) throw();
CAutoVectorPtr(CAutoVectorPtr<T>& p) throw();
Parametri
p
Puntatore esistente.
Osservazioni:
L'oggetto CAutoVectorPtr
può essere creato usando un puntatore esistente, nel qual caso trasferisce la proprietà del puntatore.
CAutoVectorPtr::~CAutoVectorPtr
Distruttore.
~CAutoVectorPtr() throw();
Osservazioni:
Libera tutte le risorse allocate. Chiama CAutoVectorPtr::Free.
CAutoVectorPtr::D etach
Chiamare questo metodo per rilasciare la proprietà di un puntatore.
T* Detach() throw();
Valore restituito
Restituisce una copia del puntatore.
Osservazioni:
Rilascia la proprietà di un puntatore, imposta la variabile membro CAutoVectorPtr::m_p su NULL e restituisce una copia del puntatore. Dopo aver chiamato Detach
, spetta al programmatore liberare tutte le risorse allocate su cui l'oggetto CAutoVectorPtr
potrebbe aver assunto la responsabilità in precedenza.
CAutoVectorPtr::Free
Chiamare questo metodo per eliminare un oggetto a cui punta un oggetto CAutoVectorPtr
.
void Free() throw();
Osservazioni:
L'oggetto CAutoVectorPtr
a cui punta viene liberato e la variabile membro CAutoVectorPtr::m_p è impostata su NULL.
CAutoVectorPtr::m_p
Variabile membro dati del puntatore.
T* m_p;
Osservazioni:
Questa variabile membro contiene le informazioni sul puntatore.
CAutoVectorPtr::operator =
Operatore di assegnazione .
CAutoVectorPtr<T>& operator= (CAutoVectorPtr<T>& p) throw();
Parametri
p
Puntatore.
Valore restituito
Restituisce un riferimento a un oggetto CAutoVectorPtr< T >.
Osservazioni:
L'operatore di assegnazione scollega l'oggetto CAutoVectorPtr
da qualsiasi puntatore corrente e collega il nuovo puntatore, p, al suo posto.
CAutoVectorPtr::operator T *
Operatore cast.
operator T*() const throw();
Osservazioni:
Restituisce un puntatore al tipo di dati dell'oggetto definito nel modello di classe.