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