指向c++中函数返回值的箭头指针
Arrow Pointer to a function return value in 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的地址,以便该方法可以为其分配一个值,然后使该值可用于您的代码。
- 将返回值存储在函数指针数组的指针中是如何工作的?
- 当我使用 void 函数的返回值(通过强制转换函数指针)时,究竟会发生什么?
- 如何读取指针的值,因为这个指针是函数的返回?
- 如何在不使用临时变量的情况下取消引用返回指针的函数的返回值?
- 如何返回值为NULL的变量指针
- 将指向数组的指针作为函数参数传递,这本身就是另一个函数的返回值?
- 存储指向函数返回值的指针
- 指针未正确返回值
- 动态指针引用数组由三元运算符返回值,但有异常
- 指针返回值的地址
- 此指针 - 按值返回 vs 按引用返回
- 将指针设置为函数的返回值
- (C )当在同一类中调用时,污点指针返回正确的值,而从MAIN调用时为0
- 即使在返回值之前释放后,数据仍在指针中仍然存在
- 返回指针、返回值或传入引用,这在C++中很优雅
- 为什么指针返回值,而不是地址
- 字符指针返回值垃圾
- 将引用强制转换为函数指针返回值中的指针
- 为什么指针返回值而不是地址
- 函数指针返回值时出现奇怪的seg错误