C++引用
来源:互联网 发布:大数据净值 编辑:程序博客网 时间:2024/06/15 23:12
1. 引用
Refer to C++ Primer 4th Edition
引用是对象的别名,实际应用中,主要做函数的形式参数。
引用是一种复合类型,通过变量名前加“&”定义,引用定义时必须指向一个已初始化的对象
int iVal = 1024;
int &refVal = iVal;
int &refVal2; //Error as a reference must be initialized
int &refVal3 = 3; //Error as the initializer must be an object, but legal if it a const reference
1.1 const引用
const引用是对const对象的引用,const对象不能被非const引用所引用,但是const引用可以指向非const对象。如果引用为const的,则表明不能对此引用赋值(也不能通过const引用改变对象的值),也就是说不能改变引用的引用对象,他只能指向这个对象。对const引用赋值会有编译错误。
const int iVal = 1024;
const int &refVal = iVal;
int &refVal2 = iVal; //Error as the reference is not const
const引用可以用常量或者表达式初始化,非const引用则不行
int i = 22;
const int &ref = 42;
const int &ref2 = ref + i;
const引用可以初始化为不同类型的对象,但非const引用只能初始化成相同类型的对象。但是这种情况下,const引用并非指向此对象,而是指向了一个新建的同类型的对象
double dval = 23.2;
const int &ref = dval; //works
const引用初始化不同类型对象是,编译器实际上新建了一个同类型的对象,const引用是指向的这个对象。所以如果改变对象的值,const引用对象的值是不会改变的
int temp = dval; //created by compiler
const int &ref = temp; //const reference actually refer to the temp object
dval = 25.2; //the value of ref is still 23
引用的本质观点:http://www.douban.com/note/282520446/
引用变量占不占内存?
- 引用(c++)
- C++----引用
- c++-引用
- C ++ 引用
- 【c++】引用
- 【c++】引用
- C++:引用
- C++:引用
- C/C++:C++引用
- 【c/c++】const引用
- 【C/C++】c++弱引用 强引用
- 枚举 c#(引用)
- 数组引用(C++)
- C++_引用
- c语言中的引用
- (Linux,c++)引用
- 引用(C++)
- objective-c 引用计数
- android spinner 样式完全自定义[包括RadioButton和RatingBar效果自定义]
- Android 框架练成 教你打造高效的图片加载框架
- C语言模拟试题1
- R语言:利用相关性分析对复杂数据进行数据探索
- IOS正则表达式
- C++引用
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- 随笔1
- python干货
- IOS atomic与nonatomic,assign,copy与retain的定义和区别
- 关于问题:reason: '* -[NSCFArray insertObject:atIndex:]: mutating method sent to immutable..
- How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Debian
- C# 配置文件读取与修改
- Web相关概念