最近在改一个C++程序的时候碰到一条警告信息,警告信息为:“
删除指向不完整“Q2DTorusNode”类型的指针;没有调用析构函数
1> c:\users\lxw\desktop\dragonfly第二阶段实验\最终的实验版本\实验目录\dragonfly_modify\src\Q2DTorus.h(6) : 参见“Q2DTorusNode”的声明
”
警告信息很是奇怪,其实出于强迫症的原因想要解决掉这个警告信息,而且从警告信息来看,程序也应该存在内存泄露的问题,因为警告直接明白告诉你了,没有调用析构函数,接下来就是我解决的过程。我会搭建一个简单的程序来模拟这个错误,因为程序是在有些多~
警告的来源:
一个头文件A.h包含class A的代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#ifndef AH
#define AH
class
B;
class
A {
B *memb;
A() {
}
~A() {
delete
memb;
}
};
#endif
|
一个头文件B.h包含class B的代码如下:
1
2
3
4
5
6
|
#ifndef BH
#define BH
|