Classe CAutoVectorPtr
Essa classe representa um objeto de ponteiro inteligente usando operadores de vetor novos e de exclusão.
Importante
Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.
Sintaxe
template<typename T>
class CAutoVectorPtr
Parâmetros
T
O tipo de ponteiro.
Membros
Construtores públicos
Nome | Descrição |
---|---|
CAutoVectorPtr::CAutoVectorPtr | O construtor . |
CAutoVectorPtr::~CAutoVectorPtr | O destruidor. |
Métodos públicos
Nome | Descrição |
---|---|
CAutoVectorPtr::Allocate | Chame esse método para alocar a memória exigida pela matriz de objetos apontados por CAutoVectorPtr . |
CAutoVectorPtr::Attach | Chame esse método para assumir a propriedade de um ponteiro existente. |
CAutoVectorPtr::Detach | Chame esse método para liberar a propriedade de um ponteiro. |
CAutoVectorPtr::Free | Chame esse método para excluir um objeto apontado por um CAutoVectorPtr . |
Operadores públicos
Nome | Descrição |
---|---|
CAutoVectorPtr::operator T * | O operador de conversão. |
CAutoVectorPtr::operator = | O operador de atribuição. |
Membros de Dados Públicos
Nome | Descrição |
---|---|
CAutoVectorPtr::m_p | A variável de membro de dados de ponteiro. |
Comentários
Essa classe fornece métodos para criar e gerenciar um ponteiro inteligente, o que ajudará na proteção contra perda de memória liberando recursos automaticamente quando ela ficar fora do escopo. CAutoVectorPtr
é semelhante a CAutoPtr
, a única diferença é que CAutoVectorPtr
usa vector new[]
e vector delete[]
aloca e libera memória em vez do dos operadores new
e delete
do C++. Confira CAutoVectorPtrElementTraits se as classes de coleção CAutoVectorPtr
forem necessárias.
Confira CAutoPtr para obter um exemplo de como usar uma classe de ponteiro inteligente.
Requisitos
Cabeçalho: atlbase.h
CAutoVectorPtr::Allocate
Chame esse método para alocar a memória exigida pela matriz de objetos apontados por CAutoVectorPtr
.
bool Allocate(size_t nElements) throw();
Parâmetros
nElements
O número de elementos na matriz.
Valor de retorno
Retornará true se a memória for alocada com êxito, false se falhar.
Comentários
Em builds de depuração, ocorrerá uma falha de asserção se a variável de membro CAutoVectorPtr::m_p atualmente apontar para um valor existente; ou seja, não é igual a NULL.
CAutoVectorPtr::Attach
Chame esse método para assumir a propriedade de um ponteiro existente.
void Attach(T* p) throw();
Parâmetros
p
O objeto CAutoVectorPtr
assumirá a propriedade desse ponteiro.
Comentários
Quando um objeto CAutoVectorPtr
assume a propriedade de um ponteiro, ele exclui automaticamente o ponteiro e todos os dados alocados quando ele sai do escopo. Se CAutoVectorPtr::Detach for chamado, o programador será novamente responsável por liberar todos os recursos alocados.
Em builds de depuração, ocorrerá uma falha de asserção se a variável de membro CAutoVectorPtr::m_p atualmente apontar para um valor existente; ou seja, não é igual a NULL.
CAutoVectorPtr::CAutoVectorPtr
O construtor .
CAutoVectorPtr() throw();
explicit CAutoVectorPtr(T* p) throw();
CAutoVectorPtr(CAutoVectorPtr<T>& p) throw();
Parâmetros
p
Um ponteiro existente.
Comentários
O objeto CAutoVectorPtr
pode ser criado usando um ponteiro existente. Nesse caso, ele transfere a propriedade do ponteiro.
CAutoVectorPtr::~CAutoVectorPtr
O destruidor.
~CAutoVectorPtr() throw();
Comentários
Libera todos os recursos alocados. Chama CAutoVectorPtr::Free.
CAutoVectorPtr::Detach
Chame esse método para liberar a propriedade de um ponteiro.
T* Detach() throw();
Valor de retorno
Retorna uma cópia do ponteiro.
Comentários
Libera a propriedade de um ponteiro, define a variável de membro CAutoVectorPtr::m_p como NULL e retorna uma cópia do ponteiro. Depois de chamar Detach
, cabe ao programador liberar todos os recursos alocados sobre os quais o objeto CAutoVectorPtr
pode ter assumido anteriormente a responsabilidade.
CAutoVectorPtr::Free
Chame esse método para excluir um objeto apontado por um CAutoVectorPtr
.
void Free() throw();
Comentários
O objeto apontado pelo CAutoVectorPtr
é liberado e a variável de membro CAutoVectorPtr::m_p é definida como NULL.
CAutoVectorPtr::m_p
A variável de membro de dados de ponteiro.
T* m_p;
Comentários
Essa variável de membro contém as informações do ponteiro.
CAutoVectorPtr::operator =
O operador de atribuição.
CAutoVectorPtr<T>& operator= (CAutoVectorPtr<T>& p) throw();
Parâmetros
p
Um ponteiro.
Valor de retorno
Retorna uma referência a um CAutoVectorPtr< T >.
Comentários
O operador de atribuição desanexa o objeto CAutoVectorPtr
de qualquer ponteiro atual e anexa o novo ponteiro, p, em seu lugar.
CAutoVectorPtr::operator T *
O operador de conversão.
operator T*() const throw();
Comentários
Retorna um ponteiro para o tipo de dados de objeto definido no modelo de classe.