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.