我不是写博客的,我只是博客的搬运工。是写还是不写呢,好像没什么用呀。其实我感觉《C++primer》里面对于析构函数讲解的不是很详细,总感觉析构函数的知识点不止这么多呀(可能我看的不仔细吧)……
(这里纠正一下,之前我用的是vs2017的空项目,用system("pause")来暂停控制台,导致了析构函数的打印以及反汇编都没有看到调用析构函数,用控制台程序的时候就会调用析构函数,看来,只要构造了并且自己写了析构函数,就会被调用,如果自己没写,也没有特殊的构造函数,也不会调用)
析构函数和构造函数很类似,是互补的一对,无返回值,没有参数,还有就是每个类只有一个析构函数,only one。并不是每个对象结束都需要调用析构函数,除非有需要释放的资源,比如你申请的内存,或者用来释放什么互斥资源。主要就是这两大类,普通的资源没必要用到析构函数来释放。
我觉得析构函数知道这么多就可以了,还有就是注意基类中需要virtual析构函数。