《c++primer笔记》复合类型--引用
2016-01-29 22:50
295 查看
复合类型:基于其他类型定义的语言
这里介绍两种
引用
指针
声明语句:一个基本数据类型,一个声明符列表组成
引用:为对象起另外一个名字
引用类型:引用另外一种类型
一般初始化变量:初始值会被拷贝到新建的对象中
定义引用:把引用和他的初始值绑定在一起,而不是拷贝给引用。初始化完成,引用和初始值一直绑定在一起。因为无法让引用重新绑定另外一个对象,所以引用必须初始化。
引用及别名
获取引用的值:获取与之绑定的对象上的值
以引用作为初始值:引用绑定的对象作为初始值
引用不是对象,他只是为已经存在的对象所起的另外一个名字,定义引用后,所有的操作都是在其绑定的对象上进行的。
引用本身不是对象,所以不能定义引用的引用。
引用的定义
允许一条语句定义多个引用,每个引用标示符必须以&开头
除了2.4.1(55页)和15.2.3(534页)介绍的两种例外,其他引用的类型都要与之绑定的对象严格匹配。引用只能绑定在对象上,不能使字面值或某个表达式的结果,原因2.4.1详述。
这里介绍两种
引用
指针
声明语句:一个基本数据类型,一个声明符列表组成
引用:为对象起另外一个名字
引用类型:引用另外一种类型
int ival = 1024; int &refVal = ival; //refVal指向ival(是ival的另一个名字) int &refVal2; //报错,引用必须被初始化
一般初始化变量:初始值会被拷贝到新建的对象中
定义引用:把引用和他的初始值绑定在一起,而不是拷贝给引用。初始化完成,引用和初始值一直绑定在一起。因为无法让引用重新绑定另外一个对象,所以引用必须初始化。
引用及别名
refVal = 2; //把2赋给refVal指向的对象,即给了ival int ii = refVal;
引用赋值:把值赋给了与之绑定的对象。
获取引用的值:获取与之绑定的对象上的值
以引用作为初始值:引用绑定的对象作为初始值
引用不是对象,他只是为已经存在的对象所起的另外一个名字,定义引用后,所有的操作都是在其绑定的对象上进行的。
//正确:refVal13绑定到了那个与refVal绑定的对象上,就是绑定到了ival上 int &refVal13 = refVal; //利用与refVal绑定的对象的值初始化变量i int i = refVal; //正确:i被初始化为ival的值
引用本身不是对象,所以不能定义引用的引用。
引用的定义
允许一条语句定义多个引用,每个引用标示符必须以&开头
int i = 1024, i2 = 2048; //i和i2 都是int int &r = i, r2 = i2; //r是一个引用,与i绑定在一起,r2是int int i3 = 1024, &ri = i3; //i3是int,ri是一个引用,与i3绑定在一起 int &r3 = i3, &r4 = i2; //r3和r4都是引用
除了2.4.1(55页)和15.2.3(534页)介绍的两种例外,其他引用的类型都要与之绑定的对象严格匹配。引用只能绑定在对象上,不能使字面值或某个表达式的结果,原因2.4.1详述。
int &refVal4 = 10; double dval = 3.14; int &refVal5 = dval;
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Python动态类型的学习---引用的理解
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- Shell脚本中引用、调用另一个脚本文件的2种方法
- vbs引用另一个vbs的代码
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法