CAdapt 類別
這個範本可用來封裝刪除物件位址以外,重新定義傳址運算子傳回值的類別。
template <
class T
>
class CAdapt
參數
- T
相容的型別。
Members
公用建構函式
名稱 |
描述 |
---|---|
建構函式。 |
公用運算子
名稱 |
描述 |
---|---|
傳回 m_T的 const 參考。 |
|
傳回 m_T的參考。 |
|
這個適用於型別的物件與 m_T。 |
|
將這個適用於型別的物件轉換為 m_T。 |
|
這個適用於型別的物件與 m_T。 |
公用資料成員
名稱 |
描述 |
---|---|
符合的資料。 |
備註
CAdapt 是一種簡單範本包裝重新定義傳址運算子的類別 (operator _&) 刪除物件位址以外,傳回的項目。這類類別的範例包括 ATL 的 CComBSTR、 CComPtr和 CComQIPtr 類別和編譯器 COM 支援類別, _com_ptr_t。這些類別都重新定義傳址運算子會傳回位址一它們的資料成員 (在 CComBSTR下的 BSTR 和其他類別的情況下的介面指標)。
類別是隱藏傳址運算子定義的 CAdapt 的主要角色, T,仍然符合的類別的特性。CAdapt 滿足這個角色按住 Public 成員, m_T,型別 T並且藉由定義轉換運算子、比較運算子和複製建構函式可讓 CAdapt 的特製化,視為已 T型別物件。
配接器類別 CAdapt 很有用,因為許多容器類別 (例如 STL 容器類別) 使用傳址運算子,預期要取得其所包含的物件位址。重新定義運算子的位址可以模糊化需求時,通常會導致編譯錯誤並防止使用該容器的不符合型別。CAdapt 這些問題提供一種方法。
通常,,當您在 STL 容器要儲存 CComBSTR、 CComPtr、 CComQIPtr或 _com_ptr_t 物件 (例如 list,您將使用 CAdapt 。您無法將這些型別物件如下所示:
std::list< CComBSTR > m_List;
相反地,您應該將這類的配接器物件:
std::list< CAdapt< CComBSTR > > m_List;
需求
Header: atlcomcli.h