你走多远const?你只是const在必要时制作函数,还是全力以赴并在任何地方使用它?例如,想象一个简单的 mutator,它接受一个布尔参数:
const
void SetValue(const bool b) { my_val_ = b; }
这const真的有用吗?我个人选择广泛使用它,包括参数,但在这种情况下,我想知道它是否值得?
我还惊讶地发现,您可以const在函数声明中省略参数,但可以将其包含在函数定义中,例如:
.h 文件
void func(int n, long l);
.cpp 文件
void func(const int n, const long l)
是否有一个原因?这对我来说似乎有点不寻常。
原因是const参数仅在函数内本地应用,因为它正在处理数据的副本。这意味着函数签名无论如何都是一样的。不过,经常这样做可能是不好的风格。
我个人倾向于不使用const除了引用和指针参数。对于复制的对象,这并不重要,尽管它可以更安全,因为它在函数内发出意图信号。这真的是一个判断电话。虽然在循环某些东西时我确实倾向于使用,const_iterator但我不打算修改它,所以我猜每个人都是他自己的,只要const严格维护引用类型的正确性。
const_iterator