【问题标题】:Arrow Pointer to a function return value in c++指向 C++ 中函数返回值的箭头指针
【发布时间】:2015-11-17 22:28:09
【问题描述】:

我一直在尝试理解使用 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++ 编程的初学者,但有一项具有挑战性的任务,因此我使用这段代码来理解和开始。

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

【问题讨论】:

  • 1) 是的。 2)它将返回值分配给hresult,因为它在=的左侧。 3) 你应该真的先读一本书。你不能只是猜测代码的作用,你必须知道。

标签: c++ pointers dereference kinect-sdk


【解决方案1】:

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

pColorSource->OpenReader(&pFrameReader);

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

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

【讨论】:

    【解决方案2】:

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

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

    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 的地址,以便该方法可以为其分配一个值,然后该值可用于您的代码。

    【讨论】:

    • 你好@Conor,非常感谢你的回答,它帮助了我。因此,如果我理解正确的话,指针“pColorSource”用于指向它自己的类(IColorSourceReader)的函数“OpenReader”,但将另一个类(IColorFrameReader)的指针(&pFrameReader)的地址传递给函数并将该值返回给“hresult”变量。
    • 指针 pColorSource 指向 IColorSourceReader 类的一个实例。箭头语法调用此类实例的方法 OpenReader()。对指针 &pFrameReader 的引用是此方法的参数。方法的返回值赋值给变量hresult。
    猜你喜欢
    • 1970-01-01
    • 2020-04-29
    • 2013-04-10
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-03
    • 2011-01-12
    相关资源
    最近更新 更多