我有一些使用接口指针的 COM 代码。代码的原作者实现了返回接口指针的函数,如下所示:
HRESULT Query ( IN BSTR sQuery, OUT IEnumWbemClassObject* &pEnumerator ); // (1)
而不是传统的
HRESULT Query ( IN BSTR sQuery, OUT IEnumWbemClassObject** ppEnumerator ); // (2)
函数 (1) 调用如下:
hRes = Query ( sQuery, pEnumerator ); // (3)
这看起来肯定是错误的,但它工作正常。我不确定我是否只是拿起这一行,因为 out 参数不是指向输出变量的指针,或者因为这种方法有问题。
对 out 参数使用引用指针而不是指针指针有优势吗?