Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. const的使用

const的使用

已定时 已固定 已锁定 已移动 OpenFOAM
4 帖子 3 发布者 2.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 小 离线
    小 离线
    小考拉
    写于 最后由 编辑
    #1

    最近看到了一点OF关于 函数声明的代码 ,对于const的使用存在疑惑:

    inline scalar k() const { return k_; }
    
    inline const vectorField& Smom() const { return Smom_; }
    

    为什么第一行代码应用了一个const,第二行代码用了两个const呢?

    第二行代码中的两个const分别表示什么意思呢?

    麻烦老师们能够指点一下:chitang:

    T 1 条回复 最后回复
  • T 离线
    T 离线
    Turbulence
    在 中回复了 小考拉 最后由 编辑
    #2

    @小考拉 @小考拉 你好,我最近也遇到这个问题,我理解后面加是指常函数,第二行是常量指针,指针常量,就是不可改吧,不知道这样理解对不对,有不对请指教。 :chouchou:

    1 条回复 最后回复
  • W 在线
    W 在线
    wangfei9088 大神
    写于 最后由 编辑
    #3

    对应两个问题的回答。

    1. 第二行代码多了一个const修饰返回值。第一行代码返回的是scalar类型的数据(是个值),第二行代码返回的是vectorField类型的对象的引用,这是两者的区别。为什么要在返回对象的引用前加const?这是为了提高效率,加了const,在返回对象的引用(不是副本)时,不用调用构造函数创建对象。
    2. 通俗地讲,在函数后面加const修饰,表示程序员不允许该函数改变对象的数据,这也是这两行代码函数后面都加const的原因。
    1 条回复 最后回复
  • 小 离线
    小 离线
    小考拉
    写于 最后由 编辑
    #4

    感谢二位前辈的回复,我差不多理解这个意思了:xinxin:

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]