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
Veřejné konstruktory
Název |
Description |
---|---|
Konstruktor. |
Veřejné operátory
Název |
Description |
---|---|
Vrátí const odkaz na m_T . |
|
Vrátí odkaz na m_T . |
|
Porovná objekt přizpůsobit typu s m_T . |
|
Přiřadí objekt typu přizpůsobeny k m_T . |
|
Porovná objekt přizpůsobit typu s m_T . |
Veřejné datové členy
Název |
Description |
---|---|
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