Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.