引用及const引用
来源:互联网 发布:防御矩阵破解版 编辑:程序博客网 时间:2024/05/17 09:13
关于引用:
引用和类一样,是C++中的重要概念,主要用于参数传递,使用引用传递而不是值传递,可在语言级提高程序的效率
概念:
引用就是对象的另一个名字。引用是一种复合类型(所谓复合类型,是指用其他类型定义的类型如指针,引用等都是符合类型),通过在变量名前添加“&”符合来定义。这就是说每一种引用类型都关联到某一其他类型。
引用在定义时必须用同类型的对象进行初始化。看如下错误代码:
int &ref1=12;//error:12是字面值(没有地址),不是对象
int &ref2 ;//error:没有初始化
double dval=3.14;
int &ref3=dval;//error:不是同类型的,这个同类型严格的同类型,虽然存在double类型到int类型的转换。
但是看以下代码:
const int &ref4=12;//ok
const int &ref5=dval;//ok
矛盾出现,不是说只能用同类型的对象初始化么?难道const引用不是这样的?
事实上,const引用同样不是例外。只是情况变的有些复杂:const int &ref4=12;//ok
引用ref4指向了编译器创建了一个用自面值12初始化的临时对象。一般情况下,临时对象的生命期持续到全表达式结束,但在const引用时,临时对象与引用共存亡即意味着该引用一直存在,直到该对象超出作用域。
同样 const int &ref5=dval;//ok 编译器同样创建了一个临时对象,它(编译器而不是你)会把该语句转换如下代码:
int temp=dval;
const int &ref5=temp;
所以实际上仍旧是同类型的对象进行初始化的。
- 引用及const引用
- 引用及const引用
- const,引用,const引用,非const引用
- 引用和const引用
- 引用和const引用
- 引用和const引用
- 引用,const引用,指针
- const 引用
- const 引用
- const引用
- const 引用
- const引用
- const 引用
- const引用
- const 引用
- const引用
- const 引用
- const引用
- ASP.NET Session详解及Session莫名丢失的原因及解决办法
- vsnew博客
- java 中的陷阱。
- nor flash 与 nand flash 的区别
- Oracle 监听错误
- 引用及const引用
- Ubuntu啊!!!
- 【5.28】网易有道练习题C
- Struts+Hibernate 分页标签(原创)
- 什么是RF、IF信号
- 寻找GIS高手
- 栈和递归篇
- 电影《艋舺》
- 软件测试的完整分类