C2504: Base class undefined 解决办法

此问题在面向对象程序设计中很容易发生.如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文件中,同时在头文件中声明用到的类就可以了。

你可能感兴趣的:(C2504: Base class undefined 解决办法)