Partilhar via


Classe CAutoVectorPtr

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