Partilhar via


CHeapPtrBase classe

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.

Esta classe forma a base para várias classes inteligentes de ponteiros 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 <class T, class Allocator = CCRTAllocator>
class CHeapPtrBase

Parâmetros

T
O tipo de objeto a ser armazenado no heap.

Allocator
A classe de alocação de memória a usar. Por defeito, as rotinas CRT são usadas para alocar e libertar memória.

Membros

Construtores públicos

Nome Description
CHeapPtrBase::~CHeapPtrBase O destruidor.

Métodos públicos

Nome Description
CHeapPtrBase::AllocateBytes Chame este método para alocar memória.
CHeapPtrBase::Attach Chame este método para assumir a posse de um ponteiro existente.
CHeapPtrBase::Detach Chame este método para libertar a propriedade de um apontador.
CHeapPtrBase::Free Chame este método para eliminar um objeto apontado por um CHeapPtrBase.
CHeapPtrBase::ReallocateBytes Chame este método para realocar memória.

Operadores públicos

Nome Description
CHeapPtrBase::operator T* O operador do elenco.
CHeapPtrBase::operator & O operador &
CHeapPtrBase::operator -> O operador apontador para membro.

Membros de dados públicos

Nome Description
CHeapPtrBase::m_pData A variável membro dos dados do apontador.

Observações

Esta classe forma a base para várias classes inteligentes de ponteiros de heap. As classes derivadas, por exemplo, CHeapPtr e CComHeapPtr, adicionam os seus próprios construtores e operadores. Consulte estas classes para exemplos de implementação.

Requerimentos

Cabeçalho: atlcore.h

CHeapPtrBase::AllocateBytes

Chame este método para alocar memória.

bool AllocateBytes(size_t nBytes) throw();

Parâmetros

nBytes
O número de bytes de memória a alocar.

Valor de retorno

Retorna true se a memória for alocada com sucesso, false caso contrário.

Observações

Em builds de depuração, ocorrerá uma falha de asserção se a CHeapPtrBase::m_pData variável membro apontar atualmente para um valor existente; ou seja, não for igual a NULL.

CHeapPtrBase::Attach

Chame este método para assumir a posse de um ponteiro existente.

void Attach(T* pData) throw();

Parâmetros

pData
O CHeapPtrBase objeto assumirá a posse deste ponteiro.

Observações

Quando um CHeapPtrBase objeto assume posse de um apontador, ele apaga automaticamente o ponteiro e quaisquer dados alocados quando este sai do âmbito.

Em builds de depuração, ocorrerá uma falha de asserção se a CHeapPtrBase::m_pData variável membro apontar atualmente para um valor existente; ou seja, não for igual a NULL.

CHeapPtrBase::~CHeapPtrBase

O destruidor.

~CHeapPtrBase() throw();

Observações

Liberta todos os recursos alocados.

CHeapPtrBase::Detach

Chame este método para libertar a propriedade de um apontador.

T* Detach() throw();

Valor de retorno

Devolve uma cópia do ponteiro.

Observações

Liberta a propriedade de um ponteiro, define a CHeapPtrBase::m_pData variável membro para NULL e devolve uma cópia do ponteiro.

CHeapPtrBase::Free

Chame este método para eliminar um objeto apontado por um CHeapPtrBase.

void Free() throw();

Observações

O objeto apontado por o CHeapPtrBase é libertado, e a CHeapPtrBase::m_pData variável membro é definida como NULL.

CHeapPtrBase::m_pData

A variável membro dos dados do apontador.

T* m_pData;

Observações

Esta variável membro contém a informação do apontador.

CHeapPtrBase::operator &

O operador &

T** operator&() throw();

Valor de retorno

Devolve o endereço do objeto apontado pelo CHeapPtrBase objeto.

CHeapPtrBase::operator ->

O operador apontador para membro.

T* operator->() const throw();

Valor de retorno

Devolve o valor da CHeapPtrBase::m_pData variável membro.

Observações

Use este operador para chamar um método numa classe apontada pelo CHeapPtrBase objeto. Em builds de depuração, ocorrerá uma falha de asserção se a CHeapPtrBase apontar para NULL.

CHeapPtrBase::operator T*

O operador do elenco.

operator T*() const throw();

Observações

Retorna CHeapPtrBase::m_pData.

CHeapPtrBase::ReallocateBytes

Chame este método para realocar memória.

bool ReallocateBytes(size_t nBytes) throw();

Parâmetros

nBytes
A nova quantidade de memória para alocar, em bytes.

Valor de retorno

Retorna true se a memória for alocada com sucesso, false caso contrário.

Consulte também

CHeapPtr Classe
CComHeapPtr Classe
Visão geral da classe