构造函数:用来初始化对象的,自动调用的成员方法
- 构造函数是可以重载的
- 如果在设计类的时候没有自己实现构造函数,则编译器会生成一个默认的构造函数,反之编译器则不会生成默认的构造函数
拷贝构造函数:
- 同构造函数的两点
- 编译器默认生成的拷贝构造函数会发生浅拷贝
- 拷贝构造函数的形参必须是引用,防止发生递归调用拷贝构造函数
赋值运算符重在函数:
- 编译器默认生成的是一个会发生浅拷贝的赋值运算符重载函数
- 防止自赋值、浅拷贝、内存泄漏
临时对象:
- 临时对象的生存周期在本句表达式 eg:用临时对象构造同类型的已存在的对象,调用构造函数生成显示生成临时对象,然后调用赋值运算符重载函数给存在的对象赋值,赋值重载函数调用完成后临时对象调用析构函数(出了语句临时对象要析构)
- 如果临时对象被引用,则临时对象的生命周期就和引用相同
- 用临时对象构造同类型的新对象的时候,此时临时对象不生成,用构造临时对象的方法直接构造目标对象
- 内置类型产生的临时量是常量,自定义生成的产生的临时量是变量可以被修改 但隐式生成的临时对象是常对象
析构函数:
- 没有参数
- 不可以重载
- 要释放外部引用的资源