概述
引用是为对象起另外起一个名字,不会产生新的对象(实体),但是会产生一个新的类型:引用类型。如int对象,被引用之后,这个别名的类型为 int&
关于引用:
-
引用必须被初始化(因为他本身不是实体)
-
&只有在定义的时候,才表示是引用,在其他地方表示取地址
-
int a = 12; int &b = a; // b是a的引用,同样指向a int &v = b; // 都是a的引用 int k = b; // 等价于:int k = a; int &f = 13; // 错误:引用的必须是一个对象 double &e = a; // 错误:类型不一致
-
一般来说,引用的和被引用的类型要一致,但有两种例外
// 第一种:初始化化常量引用时允许使用任何表达式作为初始值,注意是初始化常量引用
int i= 21;
const int &c = i;
const int &d = 32;
const int &f = c * 2;
int &r = c * 2; // 只有这个是错的,不是初始化常量引用
// 第二种:存在继承关系的类是一个重要的例外,可以将基类的指针或引用绑定到派生类对象上
(一家之言)说说为什么要使用引用,C++ 11推荐的最佳实践中有这么一条:使用引用类型的形参代替指针
引用使用最多的地方就是函数声明:void fun(int &a),对比一下:void fun(int *a),两者都可以在函数体内修改a的值,前者是绑定,不需要拷贝,后者使用指针,在传值的时候是将指针拷贝过去,拷贝就会占用时间和内存
引用也会常常和const写在一块:void fun(const int &a),表示是绑定数据,但是在函数体内不允许修改我的值
最后
以上就是发嗲楼房为你收集整理的C++ Primer 引用&的全部内容,希望文章能够帮你解决C++ Primer 引用&所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复