Partager via


Classe de CAdapt

Ce modèle est utilisé pour encapsuler les classes qui redéfinissent l'opérateur d'adresse pour retourner autre que l'adresse de l'objet.

template <
   class T
>
class CAdapt

Paramètres

  • T
    Le type approprié.

Membres

bs6acf5x.collapse_all(fr-fr,VS.110).gifConstructeurs publics

Nom

Description

CAdapt::CAdapt

Constructeur.

bs6acf5x.collapse_all(fr-fr,VS.110).gifOpérateurs publics

Nom

Description

CAdapt::operator T& const

Retourne une référence d' const à m_T.

CAdapt::operator T&

Retourne une référence à m_T.

CAdapt::operator <

Compare un objet du type approprié avec m_T.

CAdapt::operator =

Assigne un objet du type approprié à m_T.

== De CAdapt::operator

Compare un objet du type approprié avec m_T.

bs6acf5x.collapse_all(fr-fr,VS.110).gifDonnées membres publiques

Nom

Description

CAdapt::m_T

Les données qui sont adaptées.

Notes

CAdapt est un modèle simple utilisé pour encapsuler les classes qui redéfinissent l'opérateur d'adresse (operator &) pour retourner autre que l'adresse de l'objet.Les exemples de ces classes incluent CComBSTRATL, CComPtr, et les classes d' CComQIPtr , et la classe de prise en charge COM du compilateur, _com_ptr_t.Ces classes toutes redéfinissent l'opérateur d'adresse pour retourner l'adresse d'une de leurs données membres ( BSTR dans le cas de CComBSTR, et d'un pointeur d'interface dans le cas de les autres classes).

Le rôle principal d'CAdapt est de masquer l'opérateur d'adresse défini par la classe T, mais conserve toujours les caractéristiques de la classe approprié.CAdapt remplit ce rôle en maintenant un membre public, m_T, du type T, et en définissant des opérateurs de conversion, d'opérateurs de comparaison, et un constructeur de copie pour permettre les spécialisations d' CAdapt à traiter comme s'il s'agit d'objets de type T.

La classe CAdapt d'adaptateur est utile car de nombreuses classes de conteneur (telles que les classes de conteneurs STL) comptent obtenir les adresses de leurs objets à l'aide de l'opérateur d'adresse.La redéfinition de l'opérateur d'adresse peut confondre cette spécification, en général de provoquer des erreurs de compilation et empêchant l'utilisation du type unadapted à ce conteneur.CAdapt offre un moyen de contourner ces problèmes.

En général, vous utiliserez CAdapt lorsque vous souhaitez stocker CComBSTR, CComPtr, CComQIPtr, ou des objets d' _com_ptr_t dans un conteneur STL tel qu' list.Vous ne pouvez pas les objets du magasin de ces types comme suit :

std::list< CComBSTR > m_List;

À la place, vous devez stocker des objets d'adaptateur comme suit :

std::list< CAdapt< CComBSTR > > m_List;

Configuration requise

Header: atlcomcli.h

Voir aussi

Autres ressources

Vue d'ensemble de la classe ATL