c++ - 传值时 "const"不是多余的吗?

标签 c++ constants pass-by-value

我在阅读我的 C++ 书籍 (Deitel) 时遇到了一个计算立方体体积的函数。代码如下:

double cube (const double side){
    return side * side * side;
}

使用“const”限定符的解释是这样的:“const 限定符应该用于强制执行最小权限原则,告诉编译器函数不修改变量端”。

我的问题:这里使用“const”不是多余/不必要的,因为变量是按值传递的,所以函数无论如何都不能修改它?

最佳答案

const 限定符防止函数内部的代码修改参数本身。当函数大于普通大小时,这种保证可以帮助您快速阅读和理解函数。如果您知道 side 的值不会改变,那么您不必担心在阅读时跟踪它的值。在某些情况下,这甚至可以帮助编译器生成更好的代码。

考虑到这通常是一种很好的风格,有不少人这样做是理所当然的。

关于c++ - 传值时 "const"不是多余的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8714250/

相关文章:

c++ - OpenCV cv::imshow() GUI 未显示

c++ - 如何将数据类型传递给 Win32 C++ 中的资源 (.rc) 文件?

c# - 如何在函数中实例化空引用参数?

Java 支持按值传递。但无法弄清楚以下代码的原因

C++ SFINAE void_t 不工作

c++ - (a=1)=2 在 C++98 中是未定义的行为吗?

c++ - 'const int' 与 'int const' 作为 C++ 和 C 中的函数参数

python - 如何将 settings.py 文件中的常量导入到 Django 控制台中?

angular - 使用可注入(inject) token 处理全局常量 Angular 4

c++ - 哪个更快?按引用传递与按值传递 C++