构造函数
- 默认创建空构造函数
- 自定义构造函数时(可多个,即可重用),不再创建默认空构造函数
- 调用构造函数可创建相应的临时变量
复制构造函数
ClassName(ClassName &arg)
或ClassName(const ClassName &arg)
- 用途
- 初始化时使用(不等于赋值,赋值不使用该函数)
- 函数传入形参时使用
- 函数返回参数时创建临时变量使用
- 默认创建构造函数,用于复制类参数;自定义构造函数时,默认的不存在
类型转换构造函数
-
只有一个参数,且不是复制构造函数的构造函数
-
会创建一个临时对象,然后赋值
-
目的:实现类型的自动转化
class Complex{ private: double real,imag; public: Complex(){} Comoplex(int i){ //类型转换构造函数 real=i;imag=0; } Complex(double r,double i){ //不是类型转换构造函数 real=r;imag=i; } } int main(){ Complex c1(7,8); Complex c2=12; c1=9; return 0; }
析构函数
- 默认生成一个,最多一个
~ClassName(){}
- 构造函数不创建对象,只负责对象创建后的处理;析构函数不删除对象,只负责删除前的善后工作