运算符 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 () 并获取对象的地址的主要内容,如果未能解决你的问题,请参考以下文章

获取 Objective-c 属性的地址(这是一个 C 结构)

Python赋值与深浅拷贝

定位new函数的使用

2/20Python之四则运算

解引用指针并存储对指向数据的引用,然后获取引用地址并对其执行指针运算。 C++

表达式