根据我的了解, const 这个用法在 c++ 里非常复杂, 看完了 c++ primer 5th 里相关章节更加迷惑.
- 顶层 const
- 底层 const
怎么一个 const , 又涉及了阶级斗争??!!
这个问题可以从简化一下就是, const int 和 int const 是否等效, 如果等效, 谁是例外?
答案是等效的, 但是出乎意料的是我们习以为常的 const int 是例外情况.
C++中的规则本质上const适用于其左侧的类型。但是,有一个例外,如果将其放在声明的最左端,它将应用于类型的第一部分
补充一下, const 还可以修饰函数, 表示不修改非 static 类型的变量.
void bar(...) const
这里 const 就放在被修饰 func 的右侧, 这是标准用法.
而这就是 const 的用法本质.
网友评论