Partilhar via


Classe CHeapPtr

Uma classe de ponteiro inteligente para gerenciar ponteiros de heap.

Importante

Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.

Sintaxe

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

Parâmetros

T
O tipo de objeto a ser armazenado no heap.

Allocator
A classe de alocação de memória a ser usada.

Membros

Construtores públicos

Nome Descrição
CHeapPtr::CHeapPtr O construtor .

Métodos públicos

Nome Descrição
CHeapPtr::Allocate Chame esse método para alocar memória no heap para armazenar objetos.
CHeapPtr::Reallocate Chame esse método para realocar a memória no heap.

Operadores públicos

Nome Descrição
CHeapPtr::operator = O operador de atribuição.

Comentários

CHeapPtr é derivado de CHeapPtrBase e, por padrão, usa as rotinas de CRT (em CCRTAllocator) para alocar e liberar memória. A classe CHeapPtrList pode ser usada para construir uma lista de ponteiros de heap. Confira também CComHeapPtr, que usa rotinas de alocação de memória COM.

Hierarquia de herança

CHeapPtrBase

CHeapPtr

Requisitos

Cabeçalho: atlcore.h

CHeapPtr::Allocate

Chame esse método para alocar memória no heap para armazenar objetos.

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

Parâmetros

nElements
O número de elementos usados para calcular a quantidade de memória a ser alocada. O valor padrão é 1.

Valor de retorno

Retornará true se a memória foi alocada e false se não foi.

Comentários

As rotinas do alocador são usadas para reservar memória suficiente no heap para armazenar objetos nElement de um tipo definido no construtor.

Exemplo

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

CHeapPtr::CHeapPtr

O construtor .

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

Parâmetros

p
Um ponteiro de heap existente ou CHeapPtr.

Comentários

Opcionalmente, o ponteiro de heap pode ser criado usando um ponteiro existente ou um objeto CHeapPtr. Nesse caso, o novo objeto CHeapPtr assume a responsabilidade de gerenciar o novo ponteiro e os recursos.

Exemplo

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

CHeapPtr::operator =

Operador de atribuição.

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

Parâmetros

p
Um objeto CHeapPtr existente.

Valor de retorno

Retorna uma referência ao CHeapPtr atualizado.

Exemplo

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

Chame esse método para realocar a memória no heap.

bool Reallocate(size_t nElements) throw();

Parâmetros

nElements
O número de elementos novos usados para calcular a quantidade de memória a ser alocada.

Valor de retorno

Retornará true se a memória foi alocada e false se não foi.

Exemplo

// 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);   

Confira também

Classe CHeapPtrBase
Classe CCRTAllocator
Visão geral da aula