美文网首页
const限定符(二)

const限定符(二)

作者: Troll__Zhao | 来源:发表于2016-01-12 17:08 被阅读0次

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

    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绑定了这个临时变量
    

    相关文章

      网友评论

          本文标题:const限定符(二)

          本文链接:https://www.haomeiwen.com/subject/jdkckttx.html