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

时间:2015-11-17 22:28:10

标签: c++ pointers dereference kinect-sdk

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

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

java.lang.AssertionError: ObjectUnderTest.methodToTest returned null.

1)箭头操作符如何在此处起作用? (据我所知,它等同于指向属于类/结构的变量a-> b与(* a).b相同。)

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

我是c ++编程的初学者,但由于我正在使用这段代码来理解并开始,所以我的任务很艰巨。

即使听起来太基础也请帮忙。

2 个答案:

答案 0 :(得分:0)

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

pColorSource->OpenReader(&pFrameReader);

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

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

答案 1 :(得分:0)

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

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

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的地址,以便该方法可以为其赋值,并在之后为您的代码提供值。