Condividi tramite


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 CAutoVectorPtrcui 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 CAutoVectorPtrcui 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.

Vedi anche

Classe CAutoPtr
Cenni preliminari sulla classe