运算符 TYPE () 并获取对象的地址

Posted

技术标签:

【中文标题】运算符 TYPE () 并获取对象的地址【英文标题】:operator TYPE () and taking the address of an object 【发布时间】:2013-07-10 00:13:33 【问题描述】:

ATL 类CComBSTR 有一个BSTR 成员m_str 和一个返回m_stroperator BSTR ()

现在,如果函数将BSTR * 作为参数,是否可以传递CComBSTR 的地址?

CComBSTR path;
// signature is IzFileFinder::GetDir(CY index, LPBSTR path)
fileFinder->GetDir(INT64toCURRENCY(i), &path);

编译器不抱怨,但如果真的没问题,为什么会起作用?

【问题讨论】:

【参考方案1】:

您传递的不是CComBSTR 的地址,而是其m_str 成员的地址。 CComBSTR 恰好提供了一个返回 &m_stroperator&()

【讨论】:

以上是关于运算符 TYPE () 并获取对象的地址的主要内容,如果未能解决你的问题,请参考以下文章