Compartir a través de


Clase CHeapPtrBase

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