构造函数
定义:每个类都分别定义了它的对象被初始化的方式,类通过一个或者几个特殊的成员函数来控制其对象的初始化过程,这些函数叫做构造函数。
在对象建立的时候,就会执行构造函数。
特点:
- 构造函数的名字和类名相同。
- 构造函数没有返回值。
- 构造函数也有一个参数列表(可能为空)和一个函数体(可能为空)。
- 类可以有多个构造函数,和其它重载函数类似,不同的构造函数之间必须在参数数量或者类型上有区别。
- 如果类没有显示的定义构造函数,编译器会自动隐式的定义一个默认构造函数。
构造函数方式:
- 默认构造函数。
- 带参数的构造函数。
- 类中声明带参数的构造函数。
- 在类外定义带参数的构造函数。
- 构造函数初始化列表。
类名::构造函数名([参数表])[(:成员初始化表)]
ps:[]表示里面的内容可有可无。
析构函数
定义:析构函数与构造函数作用相反:释放对象使用的资源,并销毁对象的非static数据成员。
特点:
- 没有返回值,也不接受参数。
- 由于析构函数不接受参数,所有它不能被重载。
- 一个类中只有一个析构函数。
- 对象被销毁时,会自动调用其析构函数。
析构函数调用时间:
- 变量在离开其作用域时。
- 当一个对象被销毁时,其成员被销毁。
- 容器被销毁时,其元素被销毁。
- 对于动态分配的对象,当对指向它的指针应用delete运算符时被销毁。
- 对于临时变量,当创建它的完整表达式结束时被销毁