const引用

本文详细介绍了C++中的const引用,强调了const引用必须初始化,并且一旦初始化后不能改变引用的对象。const引用可以用于不同类型的对象,甚至不可寻址的值,但非const引用不能指向需要临时对象的对象。通过多个代码示例,阐述了const引用在不同场景下的应用和限制,包括const引用的const语义,以及const引用与不同类型、不可寻址值和临时对象的关系。总结指出const引用主要用于保证不通过引用改变对象值,而const放置位置的不同会影响其含义。
摘要由CSDN通过智能技术生成

1)在实际的程序中,引用主要被用做函数的形式参数:通常将类对象传递给一个函数。引用必须初始化。

2)一旦引用已经定义,它就不能再指向其他的对象。这就是为什么它要被初始化的原因。

3)const引用可以用不同类型的对象初始化(只要能从一种类型转换到另一种类型即可),也可以是不可寻址的值,如文字常量。例如

例子:

int main(){

  double dval = 3.14159;

  const int &ir = 1024;                       //仅对const引用才是合法的

  const int &ir2 = dval;                      //仅对const引用才是合法的

  const double &dr = dval + 1.0;        //仅对const引用才是合法的

}

上面的例子中,同样的初始化对于非const引用是不合法的,将导致编译错误。原因有些微妙,需要适当做些解释。

引用在内部存放的是一个对象的地址,它是该对象的别名。对于不可寻址的值,如文字常量,以及不同类型的对象,编译器为了实现引用,必须生成一个临时对象,引用实际上指向该对象,但用户不能访问它。

4)不允许非const引用指向需要临时对象的对象或值,即,编译器产生临时变量的时候引用必须为const!!!!切记!!

5)const引用的这个const的语义

   const引用表示,试图通过此引用去(间接)改变其引用的对象的值时,编译器会报错&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值