前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++核心准则​Con.3:默认情况下,传递参照常量的指针或引用

C++核心准则​Con.3:默认情况下,传递参照常量的指针或引用

作者头像
面向对象思考
发布2020-08-18 11:24:20
3980
发布2020-08-18 11:24:20
举报

秋英

Con.3: By default, pass pointers and references to consts

Con.3:默认情况下,传递参照常量的指针或引用

Reason(原因)

To avoid a called function unexpectedly changing the value. It's far easier to reason about programs when called functions don't modify state.

为了避免被调用的函数意外修改变量的值。当被调用的函数不会修改状态时这么做会使程序的理解更加容易。

Example(示例)

代码语言:javascript
复制
void f(char* p);        // does f modify *p? (assume it does)
void g(const char* p);  // g does not modify *p
Note(注意)

It is not inherently bad to pass a pointer or reference to non-const, but that should be done only when the called function is supposed to modify the object.

将指针或者参照传递给非常量也不是就一定不好,但是最好只有在被调用的函数会修改对象时这么做。

Note(注意)

Do not cast away const

不要执行去掉const属性的转换

Enforcement(注意)

  • Flag function that does not modify an object passed by pointer or reference to non-const
  • 如果函数没有修改非常量指针或引用参照的对象,标记它。
  • Flag a function that (using a cast) modifies an object passed by pointer or reference to const
  • 如果函数使用const类型转换修改常量指针或引用参照的对象,标记它。

原文链接

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#con3-by-default-pass-pointers-and-references-to-consts

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 面向对象思考 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 秋英
  • Con.3: By default, pass pointers and references to consts
    • Reason(原因)
      • Note(注意)
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档