Partilhar via


Classe CHeapPtr

Observação

A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Uma classe de pointer inteligente para gerir apontadores de heap.

Importante

Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas 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.

Alocador
A classe de alocação de memória a usar.

Membros

Construtores Públicos

Nome Description
CHeapPtr::CHeapPtr O construtor.

Métodos Públicos

Nome Description
CHeapPtr::Alocar Chame este método para alocar memória no heap para armazenar objetos.
CHeapPtr::Realocar Chame este método para realocar a memória no heap.

Operadores Públicos

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

Observações

CHeapPtr deriva do CHeapPtrBase e, por defeito, utiliza as rotinas CRT (no CCRTAllocator) para alocar e libertar memória. A classe CHeapPtrList pode ser usada para construir uma lista de ponteiros de heap. Ver também CComHeapPtr, que utiliza rotinas de alocação de memória COM.

Hierarquia de herança

CHeapPtrBase

CHeapPtr

Requerimentos

Cabeçalho: atlcore.h

CHeapPtr::Alocar

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

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

Parâmetros

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

Valor de retorno

Retorna true se a memória foi alocada com sucesso, false em caso de falha.

Observações

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

Example

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

Observações

O ponteiro de heap pode ser criado opcionalmente usando um ponteiro existente ou um CHeapPtr objeto. Se sim, o novo CHeapPtr objeto assume a responsabilidade pela gestão do novo ponteiro e dos recursos.

Example

// 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 existente CHeapPtr .

Valor de retorno

Retorna uma referência ao arquivo atualizado CHeapPtrde .

Example

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

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

bool Reallocate(size_t nElements) throw();

Parâmetros

nElementos
O novo número de elementos é usado para calcular a quantidade de memória a alocar.

Valor de retorno

Retorna true se a memória foi alocada com sucesso, false em caso de falha.

Example

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

Consulte também

Classe CHeapPtrBase
Classe CCRTAllocator
Visão geral da classe