2021年12月21日
C++ 析构函数不执行原因
如果发现自己的析构函数没有被调用,有可能是因为在delete的那个地方,没有#include相应的头文件,而只是用了class的前置声明。如下:
class AAA; //这里只有前置声明AAA,并没有include它的头文件 void doRelease(AAA* ptr) { delete ptr;//这里是不会执行析构函数的 }
这种情况恶心 就恶心在,编译器是不会报错的
感觉被C++按在地上摩擦。。。
转自:https://my.oschina.net/superpdm/blog/531001