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