1、构造函数(constructor)
- 作用:对对象进行初始化
- 形式:名字类名相同,可以有参数,但无返回值
- 对象生成时自动调用,一个类可以有多个构造函数
2、复制构造函数(copy constructor)
- 形式:只有一个参数,即对象的引用,形如:x::x(&x)或x::x(const&x)
- 调用:在三种情况下被调用:
1、用一个对象去初始化另一个对象
2、函数有一个 参数是类A的对象,则该函数被调用时,类A的复制构造函数被调用
3、函数的返回值是类A的对象,则函数返回时,类A的复制构造函数被调用
3、类型转换构造函数
- 目的:实现类型的自动转换
- 运行时自动调用,建立一个临时变量/对象
4、析构函数(Destructor)
- 形式:名字和类名相同,在类名前加~
- 一个类最多只有一个析构函数,在对象消亡时自动调用
- 作用:在对象消亡前做善后工作,释放分配空间等。若使用编译器自动生成的缺省析构函数,不涉及用户申请的内存释放等工作
- delete运算符导致析构函数调用
下面以一个简单的例子说明下四个函数的调用过程: