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。

猜你喜欢

转载自blog.csdn.net/wue1206/article/details/81016704