指向c++中函数返回值的箭头指针



我一直在尝试理解一个使用Kinect.h接口的简单c++代码。

如果我有一个特定类型的变量(比如IColourSourceReader*pColorSource)在下一段代码中,我将通过这个指针(pColorSource)访问另一个接口的另一个函数的返回:

HRESULT hresult = S_OK;
IColorSourceReader* pColorSource;
[-----code to process this information------]
IColorFrameReader* pFrameReader;
hresult = pColorSource->OpenReader(&pFrameReader);

1) 箭头操作符在这里是如何工作的?(据我所知,这相当于指向属于类/结构的变量a->b与(*a).b相同)

2) 是否将OpenReader函数的Return值分配给pColorSource(其类型为HRESULT,如Kinect SDK参考文档中所述)

我是c++编程的初学者,但有一项具有挑战性的任务,因此我使用这段代码来理解并开始。

请帮忙,即使这听起来太基础了。

箭头取消引用指针对象,访问指针对象指向的类/结构中的成员。

pColorSource->OpenReader(&pFrameReader);

正在访问接口IColorSourceReader的成员函数OpenReader,这是对pColorSource指向的类实例的操作。

当您有一个指向对象实例(的地址)的指针时,您可以使用箭头(->)访问成员;当您有对象引用时,您使用点(.)访问成员。

您的代码示例不完整,但有足够的代码来回答您的问题。

创建一个变量以存储要调用的方法(函数)的返回值:

HRESULT hresult = S_OK;`

创建指向类IColorSourceReader:实例的指针

IColorSourceReader* pColorSource;

缺少,但很可能创建一个IColorSourceReader类型的新类,并将其分配给指针:

[-----code to process this information------]

创建一个指向类的指针,该类将作为方法的参数(通过引用)传递:

IColorFrameReader* pFrameReader;

调用指针pColorSource指向的类IColorSourceReader实例的方法OpenReader(),将指针pFrameReader的地址作为参数,并将函数的结果分配给hresult:

hresult = pColorSource->OpenReader(&pFrameReader);

我假设正在传递指针pFrameReader的地址,以便该方法可以为其分配一个值,然后使该值可用于您的代码。

最新更新