Compartir a través de


Clase CAutoVectorPtr

Esta clase representa un objeto de puntero inteligente mediante operadores new y delete de vector.

Importante

Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.

Sintaxis

template<typename T>
class CAutoVectorPtr

Parámetros

T
Tipo de puntero.

Miembros

Constructores públicos

Nombre Descripción
CAutoVectorPtr::CAutoVectorPtr Constructor .
CAutoVectorPtr::~CAutoVectorPtr El destructor .

Métodos públicos

Nombre Descripción
CAutoVectorPtr::Allocate Llame a este método para asignar la memoria que requiere la matriz de objetos a los que CAutoVectorPtr apunta.
CAutoVectorPtr::Attach Llame a este método para asumir la propiedad de un puntero existente.
CAutoVectorPtr::Detach Llame a este método para liberar la propiedad de un puntero.
CAutoVectorPtr::Free Llame a este método para eliminar un objeto al que CAutoVectorPtr apunta.

Operadores públicos

Nombre Descripción
CAutoVectorPtr::operator T * El operador de conversión.
CAutoVectorPtr::operator = Operador de asignación.

Miembros de datos públicos

Nombre Descripción
CAutoVectorPtr::m_p Variable de miembro de datos del puntero.

Comentarios

Esta clase proporciona métodos que permiten crear y administrar punteros inteligentes, lo que le ayudará a protegerse frente a fugas de memoria, ya que se liberan automáticamente recursos cuando están fuera del ámbito. CAutoVectorPtr es similar a CAutoPtr, la única diferencia es que CAutoVectorPtr usa vector new[] y vector delete[] para asignar y liberar memoria, en lugar de los operadores new y delete de C++. Consulte CAutoVectorPtrElementTraits si se requieren clases de colección de CAutoVectorPtr.

Consulte CAutoPtr para obtener un ejemplo de uso de una clase puntero inteligente.

Requisitos

Encabezado: atlbase.h

CAutoVectorPtr::Allocate

Llame a este método para asignar la memoria que requiere la matriz de objetos a los que CAutoVectorPtr apunta.

bool Allocate(size_t nElements) throw();

Parámetros

nElements
Número de elementos de la matriz.

Valor devuelto

Devuelve true si la memoria se ha asignado correctamente, false en caso de error.

Comentarios

En las compilaciones de depuración, se producirá un error de aserción si la variable miembro CAutoVectorPtr::m_p apunta a un valor existente, es decir, no es igual a NULL.

CAutoVectorPtr::Attach

Llame a este método para asumir la propiedad de un puntero existente.

void Attach(T* p) throw();

Parámetros

p
El objeto CAutoVectorPtr asumirá la propiedad de este puntero.

Comentarios

Cuando un objeto CAutoVectorPtr asume la propiedad de un puntero, eliminará automáticamente el puntero y los datos asignados cuando salgan del ámbito. Si se llama a CAutoVectorPtr::Detach, el programador vuelve a tener la responsabilidad de liberar los recursos asignados.

En las compilaciones de depuración, se producirá un error de aserción si la variable miembro CAutoVectorPtr::m_p apunta a un valor existente, es decir, no es igual a NULL.

CAutoVectorPtr::CAutoVectorPtr

Constructor .

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

Parámetros

p
Un puntero existente.

Comentarios

El objeto CAutoVectorPtr se puede crear mediante un puntero existente, en cuyo caso transfiere la propiedad del puntero.

CAutoVectorPtr::~CAutoVectorPtr

El destructor .

~CAutoVectorPtr() throw();

Comentarios

Libera los recursos asignados. Llama a CAutoVectorPtr::Free.

CAutoVectorPtr::Detach

Llame a este método para liberar la propiedad de un puntero.

T* Detach() throw();

Valor devuelto

Devuelve una copia del puntero.

Comentarios

Libera la propiedad de un puntero, establece la variable de miembro CAutoVectorPtr::m_p en NULL y devuelve una copia del puntero. Después de llamar a Detach, el programador decide si desea liberar los recursos asignados sobre los que el objeto CAutoVectorPtr puede haber asumido previamente la responsabilidad.

CAutoVectorPtr::Free

Llame a este método para eliminar un objeto al que CAutoVectorPtr apunta.

void Free() throw();

Comentarios

El objeto al que señala CAutoVectorPtr está liberado y la variable de miembro CAutoVectorPtr::m_p se establece en NULL.

CAutoVectorPtr::m_p

Variable de miembro de datos del puntero.

T* m_p;

Comentarios

Esta variable miembro contiene la información del puntero.

CAutoVectorPtr::operator =

Operador de asignación.

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

Parámetros

p
Un puntero .

Valor devuelto

Devuelve una referencia a CAutoVectorPtr< T >.

Comentarios

El operador de asignación desasocia el objeto CAutoVectorPtr de cualquier puntero actual y adjunta el nuevo puntero, p, en su lugar.

CAutoVectorPtr::operator T *

El operador de conversión.

operator T*() const throw();

Comentarios

Devuelve un puntero al tipo de datos de objeto definido en la plantilla de clase.

Consulte también

CAutoPtr (clase)
Información general sobre la clase