error C2440: “初始化”: 无法从“const int”转换为“int &”
#include <iostream>
int main()
{
const int iSize = 1024;
int iCnt = 0;
const int &iRefval = iSize;//ok
int &iRef = iSize;//不允许非const引用绑定到const对象
const int &icRef = iCnt;//const引用可以绑定到右值
std::cout<<"iRefval: "<<iRefval<<std::endl;
std::cout<<"icRef: "<<icRef<<std::endl;
return 0;
}
解决办法: 非const引用绑定到const对象,如果允许的话,那么可以通过非const引用修改const原对象,这个出现一个矛盾,因此c++不允许执行此操作。解决方法就是使用非const引用绑定到同类型的非const对象,使用const引用绑定到不同但相关的类型的对象或者右值。