刚琴家 2022-09-12 21:17 采纳率: 100%
浏览 22
已结题

C++函数调用的小问题

如下图所示 RRTstar类继承了Planner类, Planner::getPlannerData(data)这行代码我可以理解,引用在定义时需要添加&,在使用时不能添加&。将形参通过引用的方式传递给实参。

img

在 data.addStartVertex(base::PlannerDataVertex(motion->state))行代码中,addStartVertex的定义如下图所示。在定义中明明定义了引用&v,

但在调用的过程中却输入了base::PlannerDataVertex(motion->state),这一点是我不能理解的。

img

下图是关于PlannerDataVertex类的一些信息。

img

下图是关于Motion类的一些信息。

img

我的问题就是为什么data.addStartVertex在调用过程中与 Planner::getPlannerData的调用方式不一样,我能理解Planner::getPlannerData的调用方式,但是理解不了data.addStartVertex调用的逻辑关系。

  • 写回答

2条回答 默认 最新

  • 私房菜 移动开发领域优质创作者 2022-09-13 09:30
    关注

    问题清晰明了,你适合做程序猿。。。。哈哈。。。
    首先,你getPlannerData 的形参是什么?是 PlannerDataVertex 类型的对象的引用。。。也就是说,它的实参应该是 PlannerDataVertex 类型的对象,这个你明白吧?
    其次,base::PlannerDataVertex(motion->state) 这句话是干嘛的?这不就是构造函数吗?参数是 state,还有个默认参数,那你说,构造函数创建的是什么?对象。。。
    ok。。。。
    一个创建了对象,一个把这个对象作为实参传递了。。。
    相信你理解了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月21日
  • 已采纳回答 9月13日
  • 创建了问题 9月12日

悬赏问题

  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000