0

编辑:我发现了我的问题,即使我问了一个蹩脚的问题,我还是找到了循环包含并修复了它。

我收到一个奇怪的错误: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 那时没有定义,并引发此错误。那么你如何解决这个问题?

4

0 回答 0