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
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