参数中的c++ const

标签 c++ c++11

<分区>

为什么这段代码在编译时显示错误?

#include <iostream>

using namespace std;

void foo(int& x){
   // cout<<x;
}

int main(){
    //int x=3;
    foo(3);
    return 0;
}

但是通过将参数更改为 const 它可以正确编译

#include <iostream>

using namespace std;

void foo(const int& x){
   // cout<<x;
}

int main(){
    //int x=3;
    foo(3);
    return 0;
}

但我仍然传递一个整数,那么如何通过在参数中添加 const 来编译它呢?

最佳答案

int& x是可以改变的,所以不能像3一样获取到const int的引用。

const int& x 无法更改并且类型与 const int 完全匹配,例如 3,那么为什么您认为它会失败?

关于参数中的c++ const,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38002706/

相关文章:

c++ - Eigen 矩阵是否支持 vector 索引?

c++ - 在类模板特化中使用 sizeof 模板参数包

c++ - 如何更改 boost::asio::ssl::context 的方法

c++ - 关于如何使用循环数组实现 std::vector 的建议?

c++ - "int* ptr = int()"值初始化如何不非法?

c++ - SFINAE 类型集包含的类型

c++ - 我只是无法理解 DR 712

C++ 使用暂停/恢复控件下载文件

c++ - 为什么这个 C++ STL 分配器不分配?

C++11x 和 Eigen 库