此问题在面向对象程序设计中很容易发生.如c++
其原因如果不是你忘记了在文件开头包含基类的头文件的话,一般都是由于对头文件进行展开后,最后出现了自己包含自己的情况.
问题描述:
文件a.h内容:
#include "b.h"
class a:public b
{
...
}
文件b.h内容:
#include "a.h"
class b
{
a* m_pA;
}
上面如果把a.h文件的包含项#include "b.h"展开,就会出现a.h文件中出现了#include "a.h"的问题.
原因的解释参考:http://www.codeguru.com/forum/showthread.php?threadid=288147
解决方法:
将上述两个头文件合二为一.
From : http://blog.sina.com.cn/s/blog_49258bbb010099jv.html
PS : 可以使用另一种方法来解决,把头文件包含放到cpp文件中,同时在头文件中声明用到的类就可以了。