我应该做所有不应该改变常量的东西吗?

2022-02-26 00:00:00 constraints constants c++

我就是这么做的。即使使用值型函数参数和局部变量也是如此。看起来是个好主意。但是,我的团队领导称它为‘const spam’。他反对声明原始类型,如const。即使他们本该如此。我只是在想,我应该如何努力让他相信const是好的。


解决方案

非常困难。他错了。C++一开始就应该使用const默认值进行设计,大量应用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。)

相关文章