那么为什么总是建议尽可能多地使用 const 呢?在我看来,使用 const 可能比 C++ 中的帮助更痛苦。但话又说回来,我是从 python 的角度来看的:如果你不想改变某些东西,就不要改变它。话虽如此,这里有几个问题:
似乎每次我将某些东西标记为 const 时,我都会收到一个错误,并且必须将其他一些函数也更改为 const。然后这导致我不得不在其他地方更改 another 函数。有了经验,这会变得更容易吗?
使用 const 的好处真的足以弥补麻烦吗?如果你不打算改变一个对象,为什么不写不改变它的代码呢?
我应该指出,在这个时间点上,我最关注的是使用 const 来实现正确性和可维护性的好处,尽管了解性能影响也很好。
最佳答案
这是关于“const 正确性”的权威文章:https://isocpp.org/wiki/faq/const-correctness .
简而言之,使用 const 是一种很好的做法,因为...
- 它可以防止您意外更改不打算更改的变量,
- 它可以防止您进行意外的变量分配,并且
编译器可以对其进行优化。例如,您可以免受
if( x = y ) // whoops, meant if( x == y )
同时,编译器可以生成更高效的代码,因为它始终准确地知道变量/函数的状态。如果您正在编写紧凑的 C++ 代码,这很好。
您是正确的,因为很难始终如一地使用 const-correctness,但最终代码更简洁,更安全。当您进行大量 C++ 开发时,这样做的好处很快就会显现出来。
关于c++ - 向我推销 const 正确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/136880/