普通引用 和 const 引用 区别

1. c++ primer中有一条规定: 引用所绑定的类型和所引用的对象类型需严格匹配。除了两个例外(下面再说),我们先看看普通的引用情况:

① int i = 3; 

     int &ri = i;    //正确,引用绑定到int 变量i上

② double d = 3.1415;

    int &rd = d;   //错误, 引用类型为 int ,所绑定对象类型为 double,类型不一致

③ int & rm = 3; //错误, 普通引用必须绑定到对象,不能绑定至常量

2. const引用,属于1中所说的一种例外,初始化 const引用时允许用任意表达式,只要该表达式的结果能转换为 引用类型即可。

    也就是说,允许为一个const引用 绑定 非常量对象、字面值、甚至是一般表达式。

① const int &ci = 3; //正确,整型字面值常量绑定到 const引用

② int i = 1;

    const int &cj = i;    //正确,非常量对象绑定到 const引用

③ const int i = 4; 

    const int &ck =  i; //正确,常量对象绑定到 const引用

④ const int i = 5;

    int &r = i;    //错误,常量对象绑定到非const引用

  • 25
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值