Compartilhar via


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.

Confira também

CHeapPtr classe
CComHeapPtr classe
Visão geral de classe