1、析构函数是特殊的类成员函数,简单来说,析构函数与构造函数的作用正好相反,它用来完成对象被删除前的一些清理工作,也就是专门的扫尾工作。
2、如果构造函数打开了一个文件,最后不需要使用时文件就要被关闭,析构函数允许类自动完成类似清理工作,不必调用其他成员函数。
(资料图片仅供参考)
3、扩展资料:函数介绍与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统会自动执行析构函数。
4、以C++语言为例:析构函数名也应与类名相同,只是在函数名前面加一个位取反符,例如~stud( ),以区别于构造函数。
5、它不能带任何参数,也没有返回值(包括void类型)。
6、只能有一个析构函数,不能重载。
7、如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数(即使自定义了析构函数,编译器也总是会为我们合成一个析构函数。
8、参考资料来源:百度百科-析构函数析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。
9、析构函数往往用来做“清理善后” 的工作.区别:构造函数是用来完成成员初始化的,析构是运行完程序释放掉变量的存储空间构造函数是送货的,析构函数是收破烂的.析构函数用来销毁对象释放资源的构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。
10、析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
11、 以C++语言为例,析构函数名也应与类名相同,只是在函数名前面加一个波浪符~,例如~stud( ),以区别于构造函数。
12、它不能带任何参数,也没有返回值(包括void类型)。
13、只能有一个析构函数,不能重载。
14、如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数,它也不进行任何操作。
15、所以许多简单的类中没有用显式的析构函数。
本文到此分享完毕,希望对大家有所帮助。