如何在一个单独的文件中定义基类而不是头文件而不抛出“基类未定义”错误?

时间:2013-08-07 01:28:27

标签: c++ polymorphism header-files

编辑:我发现了我的问题,即使我问了一个糟糕的问题,我发现了循环包含并修复了它。

我收到一个奇怪的错误: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

我的第一个猜测是在CRoom.h中包含类原型class CUpdatable;,但这没有用。

看起来正在发生的事情是头文件在编译时没有看到.cpp文件,因此CUpdatable在那时没有定义,并抛出此错误。那你怎么解决这个问题呢?

0 个答案:

没有答案