Share via


Klasse CAdapt

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze sjabloon wordt gebruikt om klassen te verpakken die het adres van de operator opnieuw definiëren om iets anders te retourneren dan het adres van het object.

Syntaxis

template <class T>
class CAdapt

Parameterwaarden

T
Het aangepaste type.

Leden

Openbare constructors

Naam Description
CAdapt::CAdapt De constructor.

Openbare operators

Naam Description
CAdapt::operator const T& Retourneert een const verwijzing naar m_T.
CAdapt::operator T& Retourneert een verwijzing naar m_T.
CAdapt::operator < Vergelijkt een object van het aangepaste type met m_T.
CAdapt::operator = Wijst een object van het aangepaste type toe aan m_T.
CAdapt::operator == Vergelijkt een object van het aangepaste type met m_T.

Publieke dataleden

Naam Description
CAdapt::m_T De gegevens worden aangepast.

Opmerkingen

CAdapt is een eenvoudige sjabloon die wordt gebruikt voor het verpakken van klassen die het adres van de operator (operator &) opnieuw definiëren om iets anders te retourneren dan het adres van het object. Voorbeelden van dergelijke klassen zijn ATL's CComBSTR, CComPtren CComQIPtr klassen, en de COM-ondersteuningsklasse van de compiler, _com_ptr_t. Deze klassen definiëren allemaal het adres van de operator om het adres van een van hun gegevensleden te retourneren (een BSTR in het geval van CComBSTR, en een interfaceaanwijzer in het geval van de andere klassen).

CAdaptDe primaire rol is het verbergen van het adres van de operator die is gedefinieerd door klasse T, maar behoudt nog steeds de kenmerken van de aangepaste klasse. CAdapt voldoet aan deze rol door een openbaar lid, m_T, van het type T, en door conversieoperators, vergelijkingsoperatoren en een kopieerconstructor te definiëren, zodat specialisaties kunnen CAdapt worden behandeld alsof het objecten van het type T zijn.

De adapterklasse CAdapt is handig omdat sommige klassen in containerstijl verwachten dat ze de adressen van hun ingesloten objecten kunnen verkrijgen met behulp van het adres-of-operator. De herdefinitie van het adres van de operator kan deze vereiste verstoren, meestal compilatiefouten veroorzaken en het gebruik van het niet-aangepaste type voorkomen met klassen die verwachten dat het gewoon werkt. CAdapt biedt een manier om die problemen te omzeilen.

Normaal gesproken gebruikt CAdapt u wanneer u objecten in een klasse in een containerstijl wilt opslaan, CComPtrCComQIPtropslaan CComBSTRof _com_ptr_t opslaan. Dit was meestal nodig voor C++ Standaardbibliotheekcontainers vóór ondersteuning voor de C++11 Standard, maar C++11 Standard-bibliotheekcontainers werken automatisch met typen die overbelast operator&()zijn. De standaardbibliotheek bereikt dit door intern gebruik te maken van std::addressof om de werkelijke adressen van objecten op te halen.

Requirements

Koptekst: atlcomcli.h

CAdapt::CAdapt

Met de constructors kan een adapterobject standaard worden samengesteld, gekopieerd uit een object van het aangepaste type of worden gekopieerd van een ander adapterobject.

CAdapt();
CAdapt(const T& rSrc);
CAdapt(const CAdapt& rSrCA);
CAdapt(T&& rSrCA);  // (Visual Studio 2017)
CAdapt(CAdapt<T>&& rSrCA) noexcept; // (Visual Studio 2017)

Parameterwaarden

rSrc
Een variabele van het type dat moet worden gekopieerd naar het zojuist gebouwde adapterobject.

rSrCA
Een adapterobject waarvan de ingesloten gegevens moeten worden gekopieerd (of verplaatst) naar het zojuist gebouwde adapterobject.

CAdapt::m_T

Bevat de gegevens die worden aangepast.

T m_T;

Opmerkingen

Dit public gegevenslid kan direct of indirect worden geopend met operator const T& en operator T&.

CAdapt::operator const T&

Retourneert een const verwijzing naar het m_T lid, zodat het adapterobject kan worden behandeld alsof het een object van het type T was.

operator const T&() const;

Retourwaarde

Een const verwijzing naar m_T.

CAdapt::operator T&

Retourneert een verwijzing naar het m_T lid, zodat het adapterobject kan worden behandeld alsof het een object van het type T was.

operator T&();

Retourwaarde

Een verwijzing naar m_T.

CAdapt::operator <

Vergelijkt een object van het aangepaste type met m_T.

bool operator<(const T& rSrc) const;

Parameterwaarden

rSrc
Een verwijzing naar het object dat moet worden vergeleken.

Retourwaarde

Het resultaat van de vergelijking tussen m_T en rSrc.

CAdapt::operator =

De toewijzingsoperator wijst het argument, rSrc, toe aan het gegevenslid m_T en retourneert het huidige adapterobject.

CAdapt& operator= (const T& rSrc);
CAdapt& operator= (T&& rSrCA); // (Visual Studio 2017)
CAdapt& operator= (CAdapt<T>&& rSrCA) noexcept; // (Visual Studio 2017)

Parameterwaarden

rSrc
Een verwijzing naar een object van het aangepaste type dat moet worden gekopieerd.

rSrCA
Een verwijzing naar een object dat moet worden verplaatst.

Retourwaarde

Een verwijzing naar het huidige object.

CAdapt::operator ==

Vergelijkt een object van het aangepaste type met m_T.

bool operator== (const T& rSrc) const;

Parameterwaarden

rSrc
Een verwijzing naar het object dat moet worden vergeleken.

Retourwaarde

Het resultaat van de vergelijking tussen m_T en rSrc.

Zie ook

Overzicht van klassen