525得票31回答
使用const修饰函数参数会产生什么影响?为什么它不会影响函数的签名?

例如,想象一个简单的变异器,它接受一个布尔类型的参数: void SetValue(const bool b) { my_val_ = b; } 那个const实际上有任何影响吗?个人而言,我倾向于广泛使用它,包括参数,但在这种情况下,我想知道它是否有任何区别。 我也很惊讶地发现,在函...

521得票4回答
错误:将const xxx作为成员函数的'this'参数传递会丢弃限定符。

#include <iostream> #include <set> using namespace std; class StudentT { public: int id; string name; public: StudentT(i...

220得票7回答
cbegin/cend的背后原因是什么?

我想知道为什么在C++11中引入了cbegin和cend? 在什么情况下调用这些方法与begin和end的const重载有所不同?

163得票16回答
卖给我const正确性

为什么推荐尽可能经常使用const呢?在C++中,使用const似乎比有帮助更为痛苦。但是,从Python的角度来看,如果你不想改变某些东西,就不要改变它。因此,以下是一些问题: 1. 每次我将某些东西标记为const时,我都会遇到错误,必须在其他某个函数处也将其更改为const。这会导致我...

108得票5回答
为什么静态成员函数不能有const限定符?

今天我遇到了一个问题。我需要一个静态成员函数,最好是带有const修饰符的。但是,我尝试了很多次都没有成功。有人能告诉我为什么或者怎么做吗?

107得票4回答
常量正确性能否提高性能?

我已经多次阅读到,在您的C或C++代码中强制执行const正确性不仅是一种良好的可维护性实践,而且还可以使您的编译器执行优化。然而,我也读到完全相反的观点 - 它根本不影响性能。 因此,您是否有示例表明const正确性可能有助于编译器改善程序的性能?

84得票7回答
C#中的"const correctness"

const-correctness的目的是提供一个实例的视图,使用户无法更改或删除该实例。编译器通过指出在const函数内部打破constness或尝试使用const对象的非const函数来实现此功能。因此,如果不复制const方法,我能在C#中使用什么方法达到同样的效果呢? 我知道不可变性...

78得票7回答
常量正确性是否为编译器提供更多的优化空间?

我知道使用它可以提高可读性并使程序更少出错,但它究竟能提高多少性能呢? 另外,参考和const指针之间的主要区别是什么?我想它们在内存中的存储方式应该不同,但具体有什么区别呢?

75得票8回答
在声明变量后,有没有一些忍者技巧可以使其成为常量?

我知道答案99.99%是不行的,但我认为这值得一试,毕竟你永远不知道。 void SomeFunction(int a) { // Here some processing happens on a, for example: a *= 50; a %= 10; ...

63得票6回答
为什么在C语言中不能将'char**'转换为'const char* const*'?

以下代码片段在 C 语言中会正确给出一个警告,在 C++ 中会错误地给出一个错误(分别使用 gcc 和 g++ 进行测试,版本为 3.4.5 和 4.2.1;MSVC 似乎并不关心):char **a; const char** b = a; 我可以理解并接受这个解决方案。 对于这个问题,C+...