const用于非引用参数

Sam*_*rsa 14 c++ const

如果我有这个代码:

void Foo(aBasicType aIn) //Where aBasicType is int, char etc.
{
    //...
}
Run Code Online (Sandbox Code Playgroud)

制作它是否有任何意义,const aBasicType因为它无论如何都会被复制?我问的原因之一是因为我在第三方代码中看到了它,并且想知道是否有一些我不知道的东西.

Ben*_*oit 12

const如果你知道你的函数在执行期间不需要修改它的值,那么声明它是不会有害的.

请注意,当参数按值传递时,更改其参数的函数应该很少.

声明变量const可能会阻止您编写if (aIn = someValue).

  • OTOH,它在接口中公开实现细节。调用者关心实现是否修改了按值传递的参数? (2认同)
  • @Andy:实际上,它不需要.编译器为了匹配声明/定义而忽略顶级const限定符,因此它不需要出现在声明中. (2认同)