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 representa um objeto ponteiro inteligente usando operadores vetorial novo e delete.
Importante
Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas no Windows Runtime.
Sintaxe
template<typename T>
class CAutoVectorPtr
Parâmetros
T
Do tipo apontador.
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| CAutoVectorPtr::CAutoVectorPtr | O construtor. |
| CAutoVectorPtr::~CAutoVectorPtr | O destruidor. |
Métodos Públicos
| Nome | Description |
|---|---|
| CAutoVectorPtr::Allocate | Chame este método para alocar a memória necessária pelo array de objetos apontados por CAutoVectorPtr. |
| CAutoVectorPtr::Attach | Chame este método para assumir a posse de um ponteiro existente. |
| CAutoVectorPtr::D etach | Chame este método para libertar a propriedade de um apontador. |
| CAutoVectorPtr::Free | Chame este método para eliminar um objeto apontado por um CAutoVectorPtr. |
Operadores Públicos
| Nome | Description |
|---|---|
| CAutoVectorPtr::operator T * | O operador do elenco. |
| CAutoVectorPtr::operator = | O operador de atribuição. |
Membros de Dados Públicos
| Nome | Description |
|---|---|
| CAutoVectorPtr::m_p | A variável membro dos dados do apontador. |
Observações
Esta classe fornece métodos para criar e gerir um apontador inteligente, que ajudará a proteger contra fugas de memória ao libertar automaticamente recursos quando este sai do âmbito de abordagem.
CAutoVectorPtr é semelhante a CAutoPtr, sendo a única diferença que CAutoVectorPtr usa vector new[] e vector delete[] para alocar e livre memória em vez dos operadores C++ new e delete . Veja CAutoVectorPtrElementTraits se forem necessárias classes de colecção.CAutoVectorPtr
Veja CAutoPtr para um exemplo de utilização de uma classe de ponteiro inteligente.
Requerimentos
Cabeçalho: atlbase.h
CAutoVectorPtr::Allocate
Chame este método para alocar a memória necessária pelo array de objetos apontados por CAutoVectorPtr.
bool Allocate(size_t nElements) throw();
Parâmetros
nElementos
O número de elementos na matriz.
Valor de retorno
Retorna true se a memória for alocada com sucesso, false em caso de falha.
Observações
Em builds de depuração, ocorrerá uma falha de asserção se a variável membro CAutoVectorPtr:m_p apontar atualmente para um valor existente; ou seja, não é igual a NULL.
CAutoVectorPtr::Attach
Chame este método para assumir a posse de um ponteiro existente.
void Attach(T* p) throw();
Parâmetros
p
O CAutoVectorPtr objeto assumirá a posse deste ponteiro.
Observações
Quando um CAutoVectorPtr objeto assume posse de um apontador, ele apaga automaticamente o ponteiro e quaisquer dados alocados quando este sai do âmbito. Se CAutoVectorPtr::D etach for chamado, o programador recebe novamente a responsabilidade de libertar quaisquer recursos alocados.
Em builds de depuração, ocorrerá uma falha de asserção se a variável membro CAutoVectorPtr:m_p apontar atualmente 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 já existente.
Observações
O CAutoVectorPtr objeto pode ser criado usando um ponteiro existente, caso em que transfere a propriedade do ponteiro.
CAutoVectorPtr::~CAutoVectorPtr
O destruidor.
~CAutoVectorPtr() throw();
Observações
Liberta quaisquer recursos alocados. Chama CAutoVectorPtr::Free.
CAutoVectorPtr::D etach
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 variável CAutoVectorPtr::m_p membro para NULL e devolve uma cópia do apontador. Após chamar Detach, cabe ao programador libertar quaisquer recursos alocados sobre os quais o CAutoVectorPtr objeto possa ter assumido responsabilidade anteriormente.
CAutoVectorPtr::Free
Chame este método para eliminar um objeto apontado por um CAutoVectorPtr.
void Free() throw();
Observações
O objeto apontado por o CAutoVectorPtr é libertado, e a variável membro CAutoVectorPtr::m_p é definida como NULL.
CAutoVectorPtr::m_p
A variável membro dos dados do apontador.
T* m_p;
Observações
Esta variável membro contém a informação do apontador.
CAutoVectorPtr::operator =
O operador de atribuição.
CAutoVectorPtr<T>& operator= (CAutoVectorPtr<T>& p) throw();
Parâmetros
p
Um ponteiro.
Valor de retorno
Devolve uma referência a um CAutoVectorPtr< T >.
Observações
O operador de atribuição destaca o CAutoVectorPtr objeto de qualquer ponteiro atual e anexa o novo ponteiro, p, no seu lugar.
CAutoVectorPtr::operator T *
O operador do elenco.
operator T*() const throw();
Observações
Devolve um ponteiro para o tipo de dado de objeto definido no template de classe.
Consulte também
Classe CAutoPtr
Visão geral da classe