[英]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.