刚琴家 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 使用CUDA如何高效的做并行化处理,是否可以多个分段同时进行匹配计算处理?目前数据传输速度有些慢,如何提高速度,使用gdrcopy是否可行?请给出具体意见。
  • ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),如何通过环岛的原理及完整代码
  • ¥20 机器学习或深度学习问题?困扰了我一个世纪,晚来天欲雪,能饮一杯无?
  • ¥15 c语言数据结构高铁订票系统
  • ¥15 关于wkernell.PDB加载的问题,如何解决?(语言-c#|开发工具-vscode)
  • ¥15 (标签-STM32|关键词-智能小车)
  • ¥20 关于#stm32#的问题,请各位专家解答!
  • ¥15 (标签-python)
  • ¥20 搭建awx,试了很多版本都有错
  • ¥15 java corba的客户端该如何指定使用本地某个固定IP去连接服务端?