编辑:我发现了我的问题,即使我问了一个蹩脚的问题,我还是找到了循环包含并修复了它。
我收到一个奇怪的错误:error C2504: 'CUpdatable' : base class undefined
. 这很奇怪,因为在我的代码中我包含了基类头文件,甚至还有类原型。以下是所有相关的代码:
在 CRoom.h 中
#ifndef CROOM_H
#define CROOM_H
#include "CUpdatable.h"
class CUpdatable;
class CRoom : public CUpdatable // <-- error here "CUpdatable is undefined"
{
...
}
#endif
在 CRoom.cpp 中
#include "stdafx.h"
#include "CRoom.h"
CRoom:: // ...
// etc
在 CUpdatable.h 中
#ifndef CUPDATABLE_H
#define CUPDATABLE_H
class CUpdatable
{
...
}
#endif
在 CUpdatable.cpp 中
#include "stdafx.h"
CUpdatable:: // ...
// etc
我的第一个猜测是class CUpdatable;
在 CRoom.h 中包含类原型,但这没有奏效。
看起来正在发生的事情是头文件在编译时看不到 .cpp 文件,因此 CUpdatable 那时没有定义,并引发此错误。那么你如何解决这个问题?