析构函数没调用

Posted Lv.v

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了析构函数没调用相关的知识,希望对你有一定的参考价值。

今天遇到这种情况,记录一下。

1. 比如在 A.cpp 中 new一个全局对象。

2.但是 在B.cpp中 需要删除(delete)。

这时,如果你在B.cpp中仅仅只是调用delete,一般是不会提示你需要加这个对象的头文件的(如果你的安全等级开的高的话,可能会提示)

问题就来了,当你没添加这个对象的头文件时,这种情况下,这个对象的析构函数不会调用,程序可能会崩溃,可能也会到某个点才会崩溃。

 

所以,一般全局对象的头文件最好是放在 公共的头文件中,避免这种情况的发生。

以上是关于析构函数没调用的主要内容,如果未能解决你的问题,请参考以下文章

safehandle 和析构函数

牛客网刷题知识汇总2

为啥C++里面,析构函数会被调用两次

c++ delete 调用析构函数问题。

在一个派生类对象结束其生命周期时析构函数的调用顺序

虚析构函数