Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.