Classe CHeapPtrBase
Essa classe forma a base para várias classes de ponteiro de heap inteligente.
Importante
Essa classe e os respectivos membros não podem ser usados em aplicativos executados 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 ser usada. Por padrão, as rotinas do CRT são usadas para alocar e liberar memória.
Membros
Construtores públicos
Nome | Descrição |
---|---|
CHeapPtrBase::~CHeapPtrBase |
O destruidor. |
Métodos públicos
Nome | Descrição |
---|---|
CHeapPtrBase::AllocateBytes |
Chame esse método para alocar memória. |
CHeapPtrBase::Attach |
Chame esse método para assumir a propriedade de um ponteiro existente. |
CHeapPtrBase::Detach |
Chame esse método para liberar a propriedade de um ponteiro. |
CHeapPtrBase::Free |
Chame esse método para excluir um objeto apontado por um CHeapPtrBase . |
CHeapPtrBase::ReallocateBytes |
Chame esse método para realocar memória. |
Operadores públicos
Nome | Descrição |
---|---|
CHeapPtrBase::operator T* |
O operador de conversão. |
CHeapPtrBase::operator & |
O operador & . |
CHeapPtrBase::operator -> |
O operador ponteiro para membro. |
Membros de dados públicos
Nome | Descrição |
---|---|
CHeapPtrBase::m_pData |
A variável de membro de dados de ponteiro. |
Comentários
Essa classe forma a base para várias classes de ponteiro de heap inteligente. As classes derivadas, por exemplo, CHeapPtr
e CComHeapPtr
, adicionam seus próprios construtores e operadores. Confira essas classes para obter exemplos de implementação.
Requisitos
Cabeçalho: atlcore.h
CHeapPtrBase::AllocateBytes
Chame esse método para alocar memória.
bool AllocateBytes(size_t nBytes) throw();
Parâmetros
nBytes
O número de bytes da memória a ser alocada.
Valor retornado
Retornará true se a memória for alocada com êxito, caso contrário, false.
Comentários
Em builds de depuração, ocorrerá uma falha de asserção se a variável de membro CHeapPtrBase::m_pData
atualmente apontar para um valor existente; ou seja, não for igual a NULL.
CHeapPtrBase::Attach
Chame esse método para assumir a propriedade de um ponteiro existente.
void Attach(T* pData) throw();
Parâmetros
pData
O objeto CHeapPtrBase
assumirá a propriedade desse ponteiro.
Comentários
Quando um objeto CHeapPtrBase
assume a propriedade de um ponteiro, ele exclui automaticamente o ponteiro e todos os dados alocados quando ele sai do escopo.
Em builds de depuração, ocorrerá uma falha de asserção se a variável de membro CHeapPtrBase::m_pData
atualmente apontar para um valor existente; ou seja, não for igual a NULL.
CHeapPtrBase::~CHeapPtrBase
O destruidor.
~CHeapPtrBase() throw();
Comentários
Libera todos os recursos alocados.
CHeapPtrBase::Detach
Chame esse método para liberar a propriedade de um ponteiro.
T* Detach() throw();
Valor retornado
Retorna uma cópia do ponteiro.
Comentários
Libera a propriedade de um ponteiro, define a variável de membro CHeapPtrBase::m_pData
como NULL e retorna uma cópia do ponteiro.
CHeapPtrBase::Free
Chame esse método para excluir um objeto apontado por um CHeapPtrBase
.
void Free() throw();
Comentários
O objeto apontado pelo CHeapPtrBase
é liberado e a variável de membro CHeapPtrBase::m_pData
é definida como NULL.
CHeapPtrBase::m_pData
A variável de membro de dados de ponteiro.
T* m_pData;
Comentários
Essa variável de membro contém as informações do ponteiro.
CHeapPtrBase::operator &
O operador & .
T** operator&() throw();
Valor retornado
Retorna o endereço do objeto apontado pelo objeto CHeapPtrBase
.
CHeapPtrBase::operator ->
O operador ponteiro para membro.
T* operator->() const throw();
Valor retornado
Retorna o valor da variável de membro CHeapPtrBase::m_pData
.
Comentários
Use esse operador para chamar um método em uma classe apontada pelo objeto CHeapPtrBase
. Em builds de depuração, ocorrerá uma falha de asserção se o CHeapPtrBase
apontar para NULL.
CHeapPtrBase::operator T*
O operador de conversão.
operator T*() const throw();
Comentários
Retorna CHeapPtrBase::m_pData
.
CHeapPtrBase::ReallocateBytes
Chame esse método para realocar memória.
bool ReallocateBytes(size_t nBytes) throw();
Parâmetros
nBytes
A nova quantidade de memória a ser alocada, em bytes.
Valor retornado
Retornará true se a memória for alocada com êxito, caso contrário, false.