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. CAutoVectorPtr
est similaire à CAutoPtr
la 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.