运算符 TYPE () 并获取对象的地址
Posted
技术标签:
【中文标题】运算符 TYPE () 并获取对象的地址【英文标题】:operator TYPE () and taking the address of an object 【发布时间】:2013-07-10 00:13:33 【问题描述】:ATL 类CComBSTR 有一个BSTR
成员m_str
和一个返回m_str
的operator BSTR ()
。
现在,如果函数将BSTR *
作为参数,是否可以传递CComBSTR
的地址?
CComBSTR path;
// signature is IzFileFinder::GetDir(CY index, LPBSTR path)
fileFinder->GetDir(INT64toCURRENCY(i), &path);
编译器不抱怨,但如果真的没问题,为什么会起作用?
【问题讨论】:
【参考方案1】:您传递的不是CComBSTR
的地址,而是其m_str
成员的地址。 CComBSTR
恰好提供了一个返回 &m_str
的 operator&()
。
【讨论】:
以上是关于运算符 TYPE () 并获取对象的地址的主要内容,如果未能解决你的问题,请参考以下文章
获取 Objective-c 属性的地址(这是一个 C 结构)