Compartir a través de


Clase CHeapPtrBase

Nota:

La biblioteca de plantillas activas (ATL) sigue siendo compatible. Sin embargo, ya no estamos agregando características ni actualizando la documentación.

Esta clase es la base de varias clases de puntero de montón inteligente.

Importante

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

Sintaxis

template <class T, class Allocator = CCRTAllocator>
class CHeapPtrBase

Parámetros

T
El tipo de objeto que se va a almacenar en el montón.

Allocator
La clase de asignación de memoria que se va a usar. De forma predeterminada, las rutinas de CRT se usan para asignar y liberar memoria.

Miembros

Constructores públicos

Nombre Descripción
CHeapPtrBase::~CHeapPtrBase El destructor .

Métodos públicos

Nombre Descripción
CHeapPtrBase::AllocateBytes Llame a este método para asignar memoria.
CHeapPtrBase::Attach Llame a este método para asumir la propiedad de un puntero existente.
CHeapPtrBase::Detach Llame a este método para liberar la propiedad de un puntero.
CHeapPtrBase::Free Llame a este método para eliminar un objeto al que CHeapPtrBase apunta.
CHeapPtrBase::ReallocateBytes Llame a este método para reasignar memoria.

Operadores públicos

Nombre Descripción
CHeapPtrBase::operator T* El operador de conversión.
CHeapPtrBase::operator & Operador & .
CHeapPtrBase::operator -> Operador de puntero a miembro.

Miembros de datos públicos

Nombre Descripción
CHeapPtrBase::m_pData Variable de miembro de datos del puntero.

Comentarios

Esta clase es la base de varias clases de puntero de montón inteligente. Las clases derivadas como, por ejemplo, CHeapPtr y CComHeapPtr, agregan sus propios constructores y operadores. Consulte estas clases para ver ejemplos de implementación.

Requisitos

Encabezado: atlcore.h

CHeapPtrBase::AllocateBytes

Llame a este método para asignar memoria.

bool AllocateBytes(size_t nBytes) throw();

Parámetros

nBytes
El número de bytes de memoria a asignar.

Valor devuelto

Devuelve true si la memoria se asigna con éxito; de lo contrario, false.

Comentarios

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

CHeapPtrBase::Attach

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

void Attach(T* pData) throw();

Parámetros

pData
El objeto CHeapPtrBase asumirá la propiedad de este puntero.

Comentarios

Cuando un objeto CHeapPtrBase asume la propiedad de un puntero, eliminará automáticamente el puntero y los datos asignados cuando salgan del ámbito.

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

CHeapPtrBase::~CHeapPtrBase

El destructor .

~CHeapPtrBase() throw();

Comentarios

Libera todos los recursos asignados.

CHeapPtrBase::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 miembro CHeapPtrBase::m_pData en NULL y devuelve una copia del puntero.

CHeapPtrBase::Free

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

void Free() throw();

Comentarios

El objeto al que señala CHeapPtrBase está liberado y la variable miembro CHeapPtrBase::m_pData se establece en NULL.

CHeapPtrBase::m_pData

Variable de miembro de datos del puntero.

T* m_pData;

Comentarios

Esta variable miembro contiene la información del puntero.

CHeapPtrBase::operator &

Operador & .

T** operator&() throw();

Valor devuelto

Devuelve la dirección del objeto al que apunta el objeto CHeapPtrBase.

CHeapPtrBase::operator ->

Operador de puntero a miembro.

T* operator->() const throw();

Valor devuelto

Devuelve el valor de la variable miembro CHeapPtrBase::m_pData.

Comentarios

Use este operador para llamar a un método de una clase a la que apunta el objeto CHeapPtrBase. En las compilaciones de depuración, se producirá un error de aserción si CHeapPtrBase apunta a NULL.

CHeapPtrBase::operator T*

El operador de conversión.

operator T*() const throw();

Comentarios

Devuelve CHeapPtrBase::m_pData.

CHeapPtrBase::ReallocateBytes

Llame a este método para reasignar memoria.

bool ReallocateBytes(size_t nBytes) throw();

Parámetros

nBytes
La nueva cantidad de memoria que se va a asignar, en bytes.

Valor devuelto

Devuelve true si la memoria se asigna con éxito; de lo contrario, false.

Consulte también

Clase CHeapPtr
Clase CComHeapPtr
Información general de clases