const限定符(二)

在前面我们说过,引用的类型必须与其所引用的对象的类型相同,但是有个例外初始化常量引用的时候允许任意表达式作为初始值,只要该表达式能转化为引用的类型
即允许一个常量引用绑定到一个非常量对象、字面值、甚至是一个一般表达式上:

int i = 42;
const int &r1 == i;        //允许const int绑定到一个普通的int对象上
const int &r2 = 42;        //r2是一个常量引用
conts int &r3 = r1 * 2;    //r3是一个常量引用
int &r4 = r1 * 2;            //错误:普通引用不能绑定到常量引用

实际上,当一个常量引用被绑定到另外一种类型上的时候:

double dval = 3.14;
const int &ri = dval;

上述代码在编译器中的形式是:

double dval = 3.14;
const int temp = dval;      //双精度浮点数生成一个临时的const int对象
const int &ri = temp;        //ri绑定了这个临时变量
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容