引用类型:替代指针操作
给内存段起别名
引用类型必须初始化
引用和指针有什么区别:
1. 引用必须初始化,指针变量不必
2. 指针变量占内存,引用不占
3. 指针变量可以重新赋值,引用不行 指针变量可以更改指向,引用不能改绑定
int& n = m;
n = 666;
4. 指针变量的大小一定是四字节,而引用不一定
拷贝构造:拷贝==复制 copy
用对象来构造新的对象
编译器自动写的: 默认拷贝构造函数。或者叫缺省拷贝构造函数。
C:结构体能直接用=赋值么? C的新标准可以的
C没有拷贝构造函数,所以不能直接赋值。
int n;
int*p = &n;
int& m = n;
就像int*p;和a=b*c;两个星号意思不一样
深浅拷贝:
成员变量中有 需要在构造器中 申请资源的那种
例如:堆空间 打开文件 。。。
拷贝构造需要用深拷贝
如果成员变量都是基本数据类型,没有深浅拷贝的区别
深拷贝:
重新分配资源 保存数据的备份
浅拷贝:
直接存储资源 (指针直接指向被拷贝对象的内存段)