你走多远const?您是否只是const在必要时制作功能,或者您是否全力以赴并在任何地方使用它?例如,想象一个简单的mutator,它接受一个布尔参数:
void SetValue(const bool b) { my_val_ = b; }
Run Code Online (Sandbox Code Playgroud)
这const实际上有用吗?我个人选择广泛使用它,包括参数,但在这种情况下,我想知道它是否值得?
我还惊讶地发现你可以省略const函数声明中的参数,但可以将它包含在函数定义中,例如:
.h文件
void func(int n, long l);
Run Code Online (Sandbox Code Playgroud)
.cpp文件
void func(const int n, const long l)
Run Code Online (Sandbox Code Playgroud)
是否有一个原因?这对我来说似乎有点不寻常.
快速提问:
int testfunc1 (const int a)
{
return a;
}
int testfunc2 (int const a)
{
return a;
}
Run Code Online (Sandbox Code Playgroud)
这两个功能在每个方面都是相同的还是有区别的?我对C语言的答案感兴趣,但如果C++语言中有一些有趣的东西,我也想知道.
在什么情况下需要使变量恒定?
如果您希望变量始终保持相同的值,就可以不更改它吗?
好吧,我没有意识到这const可能像指针一样令人困惑.有人可以在步骤中解释下面的代码到底做了什么const?
const int*const Method3(const int*const&)const;
Run Code Online (Sandbox Code Playgroud)
即使对于非新手程序员来说也是如此令人困惑.