我应该制作一些不应该改变const的东西吗?

时间:2013-04-11 13:24:53

标签: c++

我这样做。即使有值类型的函数参数和局部变量。似乎是个好主意。但是,我的团队负责人将其称为“常见垃圾邮件”。他反对声明原始类型,例如const。即使他们应该。我只是在想我应该多么努力地让他相信const是好的。

2 个答案:

答案 0 :(得分:8)

很难。他错了。首先应该使用const默认设置C ++,并且慷慨地应用const 没有错误。这是一件好事(与团队的领导者不同)。

例如:

void foo()
{
    const int x = some_function();
    // ^ Now this can't be changed. Good.

    // do stuff with `x`
}

类似地:

void foo(const int x) // <-- x can't be changed. Good.
{
   // do stuff with `x`
}

void bar()
{
   foo(5);
}

需要做的是通过const引用接受内置类型的对象,因为这只是毫无意义。

(当然,有时您希望能够更改某个对象的值。在这些情况下,显然不要使用const。)

答案 1 :(得分:1)

它肯定不会伤害任何东西,它会向读取代码的人发出一个明确的信号,即此变量“不会改变”,这对于修改代码非常重要。