繁体   English   中英

使c ++变量为const

[英]making c++ variables const

我爱“const”。 我希望“应该是const”的每个变量和方法都是“const”。 问题是变量或方法“应该是const”取决于调用树中进一步向下的方法/变量。 是否有一些工具或某些过程用于静态检查代码体并进行“自下而上的整合”?

我不知道你问题的答案,但我想反驳这个说法

变量或方法“应该是const”是否取决于调用树中进一步向下的方法/变量

实际上,const应该在逻辑层面上。 即如果不应该逻辑地改变,你应该标记const。 如果以后,那么您将收到编译器错误,需要重新考虑更改或初始假设的事实。

规则是:

如果某些东西是常量,则不应该更改

而不是

如果事情没有事实改变,那么让它成为常数

有各种静态分析工具可以做到这一点。 想到Gimpel Flexelint。

说了这些,有可能得到看起来不太合适的结果。 例如,鉴于此:

class Wibble {
   Some_Implementation_Detail *stuff; //PIMPL idiom
  public:
   void set_something(int a) { stuff->set(a); }
};

然后set_something可以成为const 这在技术上是正确的,但不是很有用,因为在这种情况下它根本不是逻辑上的const

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM