CAdapt选件类

此模板用于包装除了对象的地址以外,重新定义address-of运算符返回其上的选件类。

template <
   class T
>
class CAdapt

参数

  • T
    适合的类型。

成员

bs6acf5x.collapse_all(zh-cn,VS.110).gif公共构造函数

名称

描述

CAdapt::CAdapt

构造函数。

bs6acf5x.collapse_all(zh-cn,VS.110).gif公共运算符

名称

描述

CAdapt::operator const T&

返回 const 对 m_T

CAdapt::operator T&

返回对 m_T

CAdapt::operator <

该条件的类型的对象。m_T比较。

CAdapt::operator =

将满足类型的对象。m_T

CAdapt::operator ==

该条件的类型的对象。m_T比较。

bs6acf5x.collapse_all(zh-cn,VS.110).gif公共数据成员

名称

描述

CAdapt::m_T

适合的数据。

备注

CAdapt 是一个个简单模板包装重新定义运算符地址的选件类(operator &)除了对象的地址以外,返回内容。 示例的此类选件类包含ATL的 CComBSTRCComPtrCComQIPtr 选件类,因此,编译器COM支持选件类,_com_ptr_t。 这些选件类都重新定义address-of运算符返回地址一个其数据成员(对于 CComBSTRBSTR 和对于其他选件类的接口指针)。

选件类是隐藏address-of运算符定义的CAdapt的主要角色,T,仍然保留适合的选件类的特性。 CAdapt 执行此角色通过保存公共成员,m_T,类型 T和通过定义转换运算符、比较运算符和复制构造函数允许 CAdapt 的专用化将类型,T对象。

适配器选件类 CAdapt 非常有用,因为许多容器选件类(如STL容器类)使用address-of运算符,应能够获取其包含的对象地址。 重定义运算符地址可能模糊处理此要求,通常会导致编译错误和阻止使用与该容器的不能满足类型。 CAdapt 在这些问题提供一种方法。

通常,那么,当您在一个STL容器要存储 CComBSTRCComPtrCComQIPtr_com_ptr_t 对象(如 list,您将使用 CAdapt。 无法存储这些类型的对象象这样的:

std::list< CComBSTR > m_List;

相反,您应存储如下的适配器对象:

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

要求

Header: atlcomcli.h

请参见

其他资源

ATL选件类概述