Skip to content

c++中的const

const 引用参数

函数的 const 引用参数有两个作用

  1. 对调用者承诺不会修改变量
  2. 允许调用者传一个右值作为参数,例如常量、字面量、临时对象、匿名对象

例如

void func(const int& a){
    std::cout << a <<std::endl;
    return;
}
//可以这样调用
func(5)

如果引用参数不加const,那么它是一个左值引用,不能把右值传给它作为参数

例如下面这些写法都是无法通过编译的

int &a = 5; // 5是个字面量,不能被引用
std::string &s = "123"; //注意,理论上这里还发生了一次隐式类型转换,但是仍然不行
std::string &s2 = std::string("123");   //引用一个匿名对象也不行