c++中的const
const 引用参数
函数的 const 引用参数有两个作用
- 对调用者承诺不会修改变量
- 允许调用者传一个右值作为参数,例如常量、字面量、临时对象、匿名对象
例如
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"); //引用一个匿名对象也不行