当前位置: 首页 > wzjs >正文

发票商品名称网站建设黄石seo

发票商品名称网站建设,黄石seo,网站漏洞怎么修复,系部网站建设管理方案成员函数定义后面加const是什么功能:C中const成员函数的作用 前言C中const成员函数的作用总结 前言 在PX4的代码中的位置控制模块中,有这样一个成员函数 void getAttitudeSetpoint(vehicle_attitude_setpoint_s &attitude_setpoint) const;该函数的…

成员函数定义后面加const是什么功能:C++中const成员函数的作用

  • 前言
  • C++中const成员函数的作用
  • 总结

在这里插入图片描述

前言

在PX4的代码中的位置控制模块中,有这样一个成员函数

void getAttitudeSetpoint(vehicle_attitude_setpoint_s &attitude_setpoint) const;

该函数的功能是:在位置控制器经过更新后得到了期望的油门向量,通过这个函数转换为期望姿态值。

可以看到函数的声明和定义时,后面都加了一个const关键字在这个地方这个关键字是做什么用的呢?

在C++中,成员函数后的 const 关键字表示该函数是常量成员函数。

C++中const成员函数的作用

在C++中,成员函数后的 const 关键字表示该函数是常量成员函数,其作用如下:

1、不可修改对象状态

  • const 成员函数承诺不会修改类的非静态成员变量(除非成员被 mutable 修饰)。
  • 在函数内部尝试修改成员变量会导致编译错误(除非变量是 mutable 的)。

2、允许在const 对象上调用

  • 只有 const 成员函数才能被 const 对象调用。例如:
const PositionControl controller;
controller.getAttitudeSetpoint(...);  // 正确:调用 const 成员函数
PositionControl controller;
controller.getAttitudeSetpoint(...);  // 正确:非const对象也可以调用 const 成员函数
  • 非 const 成员函数无法在 const 对象上调用。
const PositionControl controller;
controller.setInputSetpoint(...);  // 错误:const对象只能调用 const 成员函数,而setInputSetpoint为非const 成员函数

3、 明确设计意图

  • 函数名后的 const 明确告知调用者:此函数仅用于查询或获取数据,不会改变对象内部状态。
  • 在示例中,getAttitudeSetpoint 用于获取姿态设定点,而非修改控制器状态,因此标记为 const 是合理的。

4、参数与 const 的关系

  • 示例中的参数 vehicle_attitude_setpoint_s &attitude_setpoint 是一个非 const 引用,函数可能通过此引用修改外部传入的对象。

  • 但函数本身的 const 仅约束对类内部状态的修改,不影响参数的行为。

总结

const 成员函数是 C++ 的常量正确性(const-correctness)机制,确保函数:

  • 不意外修改对象状态。
  • 可在 const 上下文中安全使用。
  • 提升代码可读性和安全性。

在示例中,getAttitudeSetpoint 用于获取姿态设定点,而非修改控制器状态,因此标记为 const 是合理的。

示例中的参数 vehicle_attitude_setpoint_s &attitude_setpoint 是一个非 const 引用,函数可能通过此引用修改外部传入的对象。

http://www.dtcms.com/wzjs/164538.html

相关文章:

  • 网站整站下载器下载utf8网页乱码吴江seo网站优化软件
  • 做数学题好的网站江苏做网站的公司有哪些
  • 学做网站在哪里计算机培训课程
  • 网站移动端是什么开鲁网站seo不用下载
  • 电子商务网站建设文案百度推广app下载
  • 公司建设网站有什么好处唐山seo排名
  • 做网站费用是什么软文推广发布
  • 西安建设工程网站贵州seo技术查询
  • 图片页面设计裤子seo标题优化关键词
  • 如何制作wordpress网站地图搜索热词排名
  • 网站建设的公司工作室佛山网络营销推广
  • b2b网站计划书百度移动端排名软件
  • 网站建设的宽带指标要求网站快速排名服务商
  • 个人备案可以做门户网站吗业务网站制作
  • 深圳网站建设深圳网网站的推广平台有哪些
  • 制作个人免费网站展示设计seo营销怎么做
  • 做瞹瞹嗳视频网站企业培训公司有哪些
  • 济南软件网站建设360搜索引擎网址
  • 博客类网站建设毕业论文有道搜索引擎入口
  • 南京做网站建设劳动局免费培训电工
  • 物流网站毕业设计论文百度正版下载恢复百度
  • 设计师网站建设百度精准搜索
  • 网站建设机器人关键的近义词
  • 1688加工厂接单大泽山seo快速排名
  • 怎么做网站设计方案西安百度爱采购推广
  • 深圳哪里网站制作免费cms建站系统
  • 东莞网站维护三只松鼠有趣的软文
  • 网站建设必要性和意义宁波seo推广咨询
  • 网站备案 通知线下推广方式
  • 定制网站前准备微信朋友圈软文大全