C++ tips_6 类型别名

本文介绍了如何在ROS2的C++代码中使用`using`关键字创建MoveRobot和GoalHandleMoveRobot类型的别名,以提升代码可读性和维护性。这些别名在声明的命名空间内有效,有助于管理动作服务器目标处理。
摘要由CSDN通过智能技术生成

1. 源码

using MoveRobot = robot_control_interfaces::action::MoveRobot;
using GoalHandleMoveRobot = rclcpp_action::ServerGoalHandle<MoveRobot>; 

2. 解析

using MoveRobot = robot_control_interfaces::action::MoveRobot; 将 robot_control_interfaces::action::MoveRobot 类型定义为 MoveRobot 的别名。这个类型别名可以让您在代码中更方便地使用 MoveRobot 类型,而无需每次都写完整的类型名称。
using GoalHandleMoveRobot = rclcpp_action::ServerGoalHandle<MoveRobot>; 将 rclcpp_action::ServerGoalHandle<MoveRobot> 类型定义为 GoalHandleMoveRobot 的别名。rclcpp_action::ServerGoalHandle 是 ROS 2 中用于管理动作服务器目标处理的类,通过将其实例化为 MoveRobot 类型的目标处理句柄,可以更方便地操作和管理与 MoveRobot 动作相关的目标。

这两个类型别名声明的作用是提高代码的可读性和可维护性,使得在后续的代码中可以更方便地引用和操作这两个类型。例如,您可以使用 MoveRobot 类型来定义变量、参数或返回值,以及使用 GoalHandleMoveRobot 类型来管理动作服务器的目标处理过程。

3. 作用域

这两个类型别名的作用域是在它们所在的命名空间或代码块内部。也就是说,在这些声明之后的同一命名空间或代码块中可以使用这两个别名来引用原始类型。

如果后续代码位于同一命名空间或代码块中,那么可以使用 MoveRobot 和 GoalHandleMoveRobot 来代表相应的类型。但是,如果代码进入了另外的命名空间或者超出了声明的代码块的范围,那么这两个别名就不再有效,需要重新声明或使用完整的类型名来引用原始类型。

总之,别名的作用域是有限的,只在其声明所在的命名空间或代码块内部有效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值