构造函数与析构函数
构造函数
- 构造函数是用于创建对象的特殊成员函数,当创建对象初始化时,系统自动调用构造函数。
- 作用:为对象分配空间,对数据成员赋初值,初始化对象。
- 用户没有定义构造函数时,系统会提供默认的构造函数。
类名 = default 或者 类名 = delete //可避免创建默认的构造函数
- 构造函数名必须与类名相同。
- 构造函数可以有任意类型的参数,但是没有返回值。
- 一般不显示调用,创建函数时会自动调用。
- 一般形式:
类名::类名
。 - 可以重载。
析构函数
- 用于取消对象的成员函数,当一个作用域结束时,则自动调用相关的析构函数。
- 作用:进行清除对象,释放内存等。
- 一般形式:
~类名
/类名::~类名
。 - 用户没有定义析构函数时,系统也会提供默认的析构函数。
- 没有参数,没有返回值,必须为公有。
- 释放内存的顺序:先入栈后释放,静态变量后释放,delete立即释放。
- 不可以重载。