Partager via


CAutoVectorPtr, classe

Cette classe représente un objet pointeur intelligent à l’aide de vecteurs nouveaux et d’opérateurs de suppression.

Important

Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.

Syntaxe

template<typename T>
class CAutoVectorPtr

Paramètres

T
Type de pointeur.

Membres

Constructeurs publics

Nom Description
CAutoVectorPtr ::CAutoVectorPtr Constructeur .
CAutoVectorPtr ::~CAutoVectorPtr Destructeur.

Méthodes publiques

Nom Description
CAutoVectorPtr ::Allocate Appelez cette méthode pour allouer la mémoire requise par le tableau d’objets pointés par CAutoVectorPtr.
CAutoVectorPtr ::Attach Appelez cette méthode pour prendre possession d’un pointeur existant.
CAutoVectorPtr ::D etach Appelez cette méthode pour libérer la propriété d’un pointeur.
CAutoVectorPtr ::Free Appelez cette méthode pour supprimer un objet pointé par un CAutoVectorPtr.

Opérateurs publics

Nom Description
CAutoVectorPtr ::operator T * Opérateur de cast.
CAutoVectorPtr ::operator = Opérateur d’assignation .

Membres de données publics

Nom Description
CAutoVectorPtr ::m_p Variable membre de données du pointeur.

Notes

Cette classe fournit des méthodes de création et de gestion d’un pointeur intelligent, ce qui permet de protéger contre les fuites de mémoire en libérant automatiquement les ressources lorsqu’elles tombent hors de portée. CAutoVectorPtrest similaire à CAutoPtrla seule différence qui CAutoVectorPtr utilise vector new[] et pour allouer et vector delete[] libérer de la mémoire au lieu des opérateurs et delete C++new. Consultez CAutoVectorPtrElementTraits si des classes de collection sont CAutoVectorPtr requises.

Consultez CAutoPtr pour obtenir un exemple d’utilisation d’une classe de pointeur intelligent.

Spécifications

En-tête : atlbase.h

CAutoVectorPtr ::Allocate

Appelez cette méthode pour allouer la mémoire requise par le tableau d’objets pointés par CAutoVectorPtr.

bool Allocate(size_t nElements) throw();

Paramètres

nElements
Nombre d’éléments dans le tableau.

Valeur de retour

Retourne true si la mémoire est correctement allouée, false en cas d’échec.

Notes

Dans les builds de débogage, une défaillance d’assertion se produit si la variable membre CAutoVectorPtr ::m_p pointe actuellement vers une valeur existante ; autrement dit, elle n’est pas égale à NULL.

CAutoVectorPtr ::Attach

Appelez cette méthode pour prendre possession d’un pointeur existant.

void Attach(T* p) throw();

Paramètres

p
L’objet CAutoVectorPtr prend possession de ce pointeur.

Notes

Lorsqu’un CAutoVectorPtr objet prend possession d’un pointeur, il supprime automatiquement le pointeur et toutes les données allouées lorsqu’il sort de l’étendue. Si CAutoVectorPtr ::D etach est appelé, le programmeur est de nouveau chargé de libérer les ressources allouées.

Dans les builds de débogage, une défaillance d’assertion se produit si la variable membre CAutoVectorPtr ::m_p pointe actuellement vers une valeur existante ; autrement dit, elle n’est pas égale à NULL.

CAutoVectorPtr ::CAutoVectorPtr

Constructeur .

CAutoVectorPtr() throw();
explicit CAutoVectorPtr(T* p) throw();
CAutoVectorPtr(CAutoVectorPtr<T>& p) throw();

Paramètres

p
Pointeur existant.

Notes

L’objet CAutoVectorPtr peut être créé à l’aide d’un pointeur existant, auquel cas il transfère la propriété du pointeur.

CAutoVectorPtr ::~CAutoVectorPtr

Destructeur.

~CAutoVectorPtr() throw();

Notes

Libère toutes les ressources allouées. Appelle CAutoVectorPtr ::Free.

CAutoVectorPtr ::D etach

Appelez cette méthode pour libérer la propriété d’un pointeur.

T* Detach() throw();

Valeur de retour

Retourne une copie du pointeur.

Notes

Libère la propriété d’un pointeur, définit la variable membre CAutoVectorPtr ::m_p sur NULL et retourne une copie du pointeur. Après l’appel Detach, il incombe au programmeur de libérer toutes les ressources allouées sur lesquelles l’objet peut avoir précédemment assumé la CAutoVectorPtr responsabilité.

CAutoVectorPtr ::Free

Appelez cette méthode pour supprimer un objet pointé par un CAutoVectorPtr.

void Free() throw();

Notes

L’objet pointé par l’objet CAutoVectorPtr est libéré, et la variable membre CAutoVectorPtr ::m_p a la valeur NULL.

CAutoVectorPtr ::m_p

Variable membre de données du pointeur.

T* m_p;

Notes

Cette variable membre contient les informations de pointeur.

CAutoVectorPtr ::operator =

Opérateur d’assignation .

CAutoVectorPtr<T>& operator= (CAutoVectorPtr<T>& p) throw();

Paramètres

p
Pointeur.

Valeur de retour

Retourne une référence à un CAutoVectorPtr< T >.

Notes

L’opérateur d’affectation détache l’objet CAutoVectorPtr de n’importe quel pointeur actuel et attache le nouveau pointeur, p, à sa place.

CAutoVectorPtr ::operator T *

Opérateur de cast.

operator T*() const throw();

Notes

Retourne un pointeur vers le type de données d’objet défini dans le modèle de classe.

Voir aussi

CAutoPtr, classe
Vue d’ensemble de la classe