C++之引用
来源:互联网 发布:北京装修公司 知乎 编辑:程序博客网 时间:2024/05/16 06:35
C++中的引用就相当于对一个变量的别名。
int a,j=3; int &b=a; b=j;
出现b的地方,就相当于a,可以把b都替换掉a。
注意:
1. 引用在声明时必须进行初始化。
2. 引用在初始化后,就相当于那个变量。而且这个应用不可以再指向其他变量。
3. 引用本身不占有内存,系统不分配内存。
4. 对一个数组的引用:
int A_a[10]={0}; int (&A_b)[10]=A_a;
其实:1和2总结起来有点像常量指针。
int &b=a; int * const c=&a;c和b一样,声明必须初始化。
c和b一样,不能再指向其他内容。
一个有意思的事情:
何时才能让一个已经初始化的引用再指向其他变量?以用来判断注意2的正确性。
class A{public: A(int& _a):a(_a){}private: int& a;};int main(){ int i=1,j=2; Aa(i); Ab(j); //a=b; error system("pause"); return 0;}
这种情况很有意思,a的a是i的引用,b的a是j的引用,a=b赋值操作,系统内部认为我们想要把a的a变成j的引用。这样就是违法的。
思考:系统提供的赋值操作不就是a.a=b.a吗?而这样显然是合法的啊。
其实系统提供的默认赋值操作不单纯只是变量与变量的=,这么简单的啊。
当一个类的成员变量是引用时,
1> 这个变量必须在构造函数的初始化列表中赋值,不能在构造函数内进行=号赋值。
class A{public: A(int i):b(i){}private: int & b;};
2> 这个类的对象之间是禁止赋值的。如上例。
1 0
- C++Primer读书笔记之引用
- c之引用作为参数
- C语言之指针,数组,引用
- C常见问题之头文件引用
- objective-c基础之引用计数
- 《唐老师C++》之const引用
- c,c++易错点之指针与引用
- 黑马程序员-Object C之循环引用
- C语言之指针,数组,引用
- Objective-C内存管理之引用计数
- 【C++】:C++之C++的引用
- C与C++之引用与指针
- 引用(c++)
- C++----引用
- c++-引用
- C ++ 引用
- 【c++】引用
- 【c++】引用
- spring quartz 配置多个定时任务
- 高薪技术知识(2)
- JSTL fmt:formatNumber日期、 数字、货币格式化
- oracle 时间差转当前时间
- 背上长痘痘该如何护理?
- C++之引用
- Mybatis传多个参数(三种解决方案)
- vector iterators incompatible
- 短暂假眠给大脑活力
- C++:重载全局new/delete实现跨平台多线程内存检测
- HDU 2512 一卡通大冒险
- 网络编程 好书
- UliPad编辑器安装
- 驼背易致面部肌肉下垂