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

NFR*_*RCR 1 c++

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

Lig*_*ica 8

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

例如:

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

    // do stuff with `x`
}
Run Code Online (Sandbox Code Playgroud)

同理:

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

void bar()
{
   foo(5);
}
Run Code Online (Sandbox Code Playgroud)

什么,你不会需要做的是通过接受内建类型的对象const引用,因为这仅仅是一种毫无意义的.

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

  • @ZdeslavVojkovic 实际上,您不需要更改任何内容,因为 `void foo(int)` 和 `void foo(const int)` 是相同的签名。这指出了其他问题:您的标题 * 可以* 说 `const int`,而您的实现则不然。 (2认同)