一个奇怪的delete 现象,希望对你有帮助
编译器用的是VS2003 ,发现情况是这样的
加入自定义类 CA, 文件分别是a.cpp, a.h
在另一个类如CB中,需用到CA, 假如类CB对应的文件是b.cpp, b.h,
在b.cpp 中加入inluce "a.h",后面定义一个CA 的全局变量 CA g_ca = new CA, ...,delete g_ca;
这时候调试你会发现 CA 的析构函数首先被调用
但是当你将include "a.h" 这句放在b.h中,就不会出现这种情况,一切正常了
希望再次遇见这样问题的朋友,不会再无法解决?
但是为什么会出现这样呢?