我一直在尝试理解使用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 ++编程的初学者,但由于我正在使用这段代码来理解并开始,所以我的任务很艰巨。
即使听起来太基础也请帮忙。
答案 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的地址,以便该方法可以为其赋值,并在之后为您的代码提供值。