C++ const的引用

文章概述

  1. 常量引用的定义
  2. 常量引用初始化以及分析常量引用

常量引用的定义

a. 常量引用 : 将引用绑定到const对象上(其实就是对const的引用)。

//常量引用的格式:const int &a。
const int & a = 10;

b. 常量引用表示不能通过引用改变绑定对象的值,但是对象的值可以通过别的方式改变。

    int a = 10;
    //常量引用b和a绑定,不能通过b而改变a。
    const int &b = a;
    cout << a << endl;
    cout << b << endl;
    //但是可以通过别的方式改变a
    a = 20;
    cout << a << endl;
    cout << b << endl;
    (上面的代码也反映了生活中有些事不是你以为一直不变的,它有可能已经改变了)

c. 引用的类型必须与其绑定的对象类型一致,但是常量引用的初始化时个特例。常量引用允许用任意的表达式作为初始值,只要这个表达式可以转化为常量引用的类型。我们分析一下这种例外情况为什么可以?看下面的代码:

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

a是常量引用,并且引用的对象应该是int类型的。但是dval是double类型的。因此为了确保a绑定的是整数,编译器把上面的代码变成一下形式:

const int b = dval;
const int&a =b;

其实,关键在于编译器生成了一个临时变量b,常量引用绑定的是临时变量b。

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值