Compartir vía


Clase CHeapPtr

Clase de puntero inteligente para administrar punteros de montón.

Importante

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

Sintaxis

template<typename T, class Allocator=CCRTAllocator>
class CHeapPtr : public CHeapPtrBase<T, Allocator>

Parámetros

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

Asignador
La clase de asignación de memoria que se va a usar.

Miembros

Constructores públicos

Nombre Descripción
CHeapPtr::CHeapPtr Constructor .

Métodos públicos

Nombre Descripción
CHeapPtr::Allocate Llame a este método para asignar memoria en el montón para almacenar objetos.
CHeapPtr::Reallocate Llame a este método para reasignar la memoria en el montón.

Operadores públicos

Nombre Descripción
CHeapPtr::operator = Operador de asignación.

Comentarios

CHeapPtr se deriva de CHeapPtrBase y, de forma predeterminada, usa las rutinas de CRT (en CCRTAllocator) para asignar y liberar memoria. La clase CHeapPtrList se puede usar para construir una lista de punteros de montón. Consulte también CComHeapPtr, que usa rutinas de asignación de memoria COM.

Jerarquía de herencia

CHeapPtrBase

CHeapPtr

Requisitos

Encabezado: atlcore.h

CHeapPtr::Allocate

Llame a este método para asignar memoria en el montón para almacenar objetos.

bool Allocate(size_t nElements = 1) throw();

Parámetros

nElements
Número de elementos usados para calcular la cantidad de memoria que se va a asignar. El valor predeterminado es 1.

Valor devuelto

Devuelve true si la memoria se asignó correctamente, false en caso de error.

Comentarios

Las rutinas de asignador se usan para reservar suficiente memoria en el montón para almacenar objetos nElement de un tipo definido en el constructor.

Ejemplo

// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);

CHeapPtr::CHeapPtr

Constructor .

CHeapPtr() throw();
explicit CHeapPtr(T* p) throw();
CHeapPtr(CHeapPtr<T, Allocator>& p) throw();

Parámetros

p
Puntero de montón existente o CHeapPtr.

Comentarios

Opcionalmente, el puntero de montón se puede crear mediante un puntero existente o un objeto CHeapPtr. Si es así, el objeto CHeapPtr nuevo asume la responsabilidad de administrar el puntero y los recursos nuevos.

Ejemplo

// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Create a new CHeapPtr from the first
CHeapPtr <int> myHP2(myHP);   

CHeapPtr::operator =

Operador de asignación.

CHeapPtr<T, Allocator>& operator=(
    CHeapPtr<T, Allocator>& p) throw();

Parámetros

p
Objeto CHeapPtr existente.

Valor devuelto

Devuelve una referencia al objeto CHeapPtr actualizado.

Ejemplo

// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);
// Create a second heap pointer
// and assign it to the first pointer.
CHeapPtr <int> myHP2;
myHP2 = myHP;   

CHeapPtr::Reallocate

Llame a este método para reasignar la memoria en el montón.

bool Reallocate(size_t nElements) throw();

Parámetros

nElements
Nuevo número de elementos usados para calcular la cantidad de memoria que se va a asignar.

Valor devuelto

Devuelve true si la memoria se asignó correctamente, false en caso de error.

Ejemplo

// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);
// Resize the allocated memory for 20 integers
myHP.Reallocate(20);   

Vea también

CHeapPtrBase (clase)
CCRTAllocator (clase)
Información general sobre la clase