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