还在苦苦敲代码开发APP?你out啦! 试试积木搭建APP吧~

error C2440: “初始化”: 无法从“const int”转换为“int &”

来源:清泛原创     2016-08-29 16:57:37    人气:     我有话说( 0 人参与)

error C2440: 初始化: 无法从const int转换为int &转换丢失限定符。#include <iostream> int main() { const int...

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引用绑定到不同但相关的类型的对象或者右值。

转换 丢失 限定符

注:本文为本站或本站会员原创优质内容,版权属于原作者及清泛网所有,
欢迎转载,转载时须注明版权并添加来源链接,谢谢合作! (编辑:admin)
分享到: