Classe de CAdapt
Esse modelo é usado para englobar as classes que redefinem endereço- do operador para retornar algo diferente do endereço do objeto.
template <
class T
>
class CAdapt
Parâmetros
- T
o tipo adaptado.
Membros
Construtores public
Nome |
Descrição |
---|---|
o construtor. |
Operadores públicos
Nome |
Descrição |
---|---|
Retorna uma referência de const a m_T. |
|
Retorna uma referência a m_T. |
|
Compara um objeto do tipo adaptado com m_T. |
|
Atribui um objeto do tipo adaptado a m_T. |
|
Compara um objeto do tipo adaptado com m_T. |
Membros públicos de dados
Nome |
Descrição |
---|---|
Os dados que estão sendo adaptados. |
Comentários
CAdapt é um modelo simples usado para englobar as classes que redefinem endereço- de operador (operator &) para retornar algo diferente do endereço do objeto.Exemplos de essas classes incluem CComBSTRde ATL, CComPtr, e classes de CComQIPtr , e a classe COM suporte do compilador, _com_ptr_t.Todas essas classes redefinem endereço- do operador para retornar o endereço de um de seus membros de dados ( BSTR no caso de CComBSTR, e um ponteiro de interface no caso de outras classes).
Papel primário de CAdapt é ocultar endereço- do operador é definido pela classe T, e ainda mantém as características da classe adaptada.CAdapt atende essa função mantendo um membro público, m_T, do tipo T, e definir operadores de conversão, operadores de comparação, e um construtor de impressão para permitir que as especializações de CAdapt são tratadas como se eles objetos do tipo T.
A classe CAdapt do adaptador é útil porque muitas classes do recipiente (como o contêiner de STL classe) espera pode obter os endereços de sua usando contida de objetos endereço- do operador.A redefinição de endereço- do operador pode ser uma distração esse requisito, causando normalmente erros de compilação e evitando o uso de tipo unadapted com o recipiente.CAdapt fornece uma maneira em torno de esses problemas.
Normalmente, você usará CAdapt quando você deseja armazenar CComBSTR, CComPtr, CComQIPtr, ou objetos de _com_ptr_t em um recipiente de STL como list.Você não pode armazenar objetos de esses tipos como este:
std::list< CComBSTR > m_List;
Em vez de isso, você deve armazenar objetos adaptadores como este:
std::list< CAdapt< CComBSTR > > m_List;
Requisitos
Cabeçalho: atlcomcli.h