Sdílet prostřednictvím


Třída CAdapt

Tuto šablonu používá třídy, které předefinovat operátor adresu z vrátit něco jiného než adresa objektu obtékat.

template <
   class T
>
class CAdapt

Parametry

  • T
    Upravit typ.

Členy

bs6acf5x.collapse_all(cs-cz,VS.110).gifVeřejné konstruktory

Název

Description

CAdapt::CAdapt

Konstruktor.

bs6acf5x.collapse_all(cs-cz,VS.110).gifVeřejné operátory

Název

Description

Const CAdapt::operator T &

Vrátí const odkaz na m_T .

CAdapt::operator t &

Vrátí odkaz na m_T .

CAdapt::operator <

Porovná objekt přizpůsobit typu s m_T .

CAdapt::operator =

Přiřadí objekt typu přizpůsobeny k m_T .

CAdapt::operator ==

Porovná objekt přizpůsobit typu s m_T .

bs6acf5x.collapse_all(cs-cz,VS.110).gifVeřejné datové členy

Název

Description

CAdapt::m_T

Data jsou upraveny.

Poznámky

CAdaptje jednoduché šablony na třídy, které předefinovat operátor adresu z balení (operator &) vrátit něco jiného než adresa objektu.Příklady těchto tříd ATL's CComBSTR , CComPtr , a CComQIPtr tříd a podporu třídu kompilátoru COM _com_ptr_t .Všechny tyto třídy předefinovat operátor adresu ze zpáteční adresa jednoho z jejich členů dat ( BSTR v CComBSTR a ukazatele rozhraní u jiných tříd).

CAdaptjeho primární role je skrytí operátor adresu z definice třídy T , ale stále si zachovat vlastnosti upraveny třídy.CAdapttuto roli plní podržením veřejný člen m_T, typu T a definováním operátory převodu, operátory porovnání a Kopírovat konstruktor odborností, které umožňují CAdapt nakládáno, jako by byly objekty typu T .

Třída adaptéru CAdapt je užitečné, protože mnoho tříd kontejneru (například kontejner tříd STL) očekávat moci získat adresy jejich obsažené objekty pomocí operátoru z adresy.Informování provozovatele o adresu lze confound tento požadavek obvykle způsobí chyby kompilace a předcházení používání nepřizpůsobené typu s kontejneru.CAdaptUmožňuje kolem těchto problémů.

Obvykle můžete použít CAdapt Chcete-li uložit CComBSTR , CComPtr , CComQIPtr , nebo _com_ptr_t objektů v kontejneru STL, jako list .Nelze ukládat objekty tyto typy takto:

std::list< CComBSTR > m_List;

Místo toho by měla být uložena objekty adaptéru následujícím způsobem:

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

Požadavky

Záhlaví: atlcomcli.h

Viz také

Další zdroje

Přehled třídy ATL