刚琴家 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日

悬赏问题

  • ¥50 深度学习运行代码直接中断
  • ¥15 关于#单片机#的问题,请各位专家解答!
  • ¥15 关于#单片机#的问题,请各位专家解答!
  • ¥20 需要完整的共散射点成像代码
  • ¥15 编写vba代码实现数据录入工作
  • ¥15 做过TCL海信电视小米电视相关影视会员软件私我
  • ¥15 Mapreduce是正常的,在运行其他jar包时并没有任何问题,只是在做LogCount.jar 时出的问题。如图所示
  • ¥15 ImportError: DLL load failed while importing _iterative: 找不到指定的模块。
  • ¥15 如何通过交互分析得出某高危患者对放疗获益更多
  • ¥15 相关性分析中,p<0.05, r=0.29,怎么评价相关性呢