概念
析构函数是一种特殊的成员函数,它执行与构造函数相反的操作,通常用于撤销对象时的一些清理任务,最常见的使用情景有函数调用结束后形参的收回、delete删除等。
特点
- 析构函数与构造函数名字相同,但它前面必须加一个波浪号。
- 析构函数不能有参数,不能重载,一个类中只能有一个析构函数。(考试常考:一个类可以有多个构造函数但只有一个析构函数。)
- 析构函数每个类必须会有,如果没有定义析构函数,系统会调用一个默认的析构函数,默认析构函数只能释放对象的数据成员所占用的空间,但不包括堆内存空间。(每个类一定要有构造函数和析构函数和拷贝构造函数)
调用构造函数和析构函数的顺序
1.一般顺序:在一般情况下,调用析构函数的次序正好与调用构造函数的次序相反:最先被调用的构造函数,其对应的析构函数最后被调用,而最后被调用的构造函数,其对应的析构函数最先被调用。(先造出来的最后被消掉,最后被造出来了先消掉)
- 全局对象:在全局范围内定义的对