class Game_Scene : public Scene_base
で以下のエラーが発生するのですがなぜこのようなエラーが発生するのでしょうか?全てオーバーライドしていますが原因がわかりません。
void Update() void Draw();関数はオーバーライド定義済です。
「 重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー C2504 'Scene_base': 定義されていない基底クラスが宣言されています。 Hack_and_Slash C:\Users\yw325\Desktop\Hack_and_Slash\Hack_and_Slash\Game_Scene.hpp 18
」
hpp
1#ifndef ___SCENE_BASE_ 2#define ___SCENE_BASE_ 3 4#include "Entry.hpp" 5#include <iostream> 6/*#################################################### 7* シーンの基底クラス 8* 9* 説明 10* 全てのシーンクラスはこのクラスを継承する。 11######################################################*/ 12enum class Scene_Type; 13class Scene_base 14{ 15public: 16 Scene_base(Scene_Type t); //コンストラクタ 17 ~Scene_base(); //デストラクタ 18 19 virtual void Update() = 0; //更新 20 virtual void Draw() = 0; //描画 21 22 Scene_Type getSceneType(); //シーンタイプを取得 23protected: 24 25 Scene_Type Type; //シーンタイプ 26 27}; 28 29 30#endif 31
cpp
1#include "Scene_Base.hpp" 2 3 4//コンストラクタ 5Scene_base::Scene_base(Scene_Type t) 6{ 7 Type = t; //シーンにタイプを設定 8} 9 10//シーンタイプを取得 11Scene_Type Scene_base::getSceneType() 12{ 13 return Type; 14} 15 16//デストラクタ 17Scene_base::~Scene_base() 18{ 19 20}
hpp
1#ifndef ___GAME_SCENE_HPP_ 2#define ___GAME_SCENE_HPP_ 3 4#include "Entry.hpp" 5#include "Scene_base.hpp" 6#include <iostream> 7 8/*#################################################### 9* メインゲーム シーン 10* 11* 説明 12* メインのゲーム画面 13######################################################*/ 14class Scene_base; 15enum class Scene_Type; 16 17class Game_Scene : public Scene_base 18{ 19public: 20 Game_Scene(Scene_Type t); //コンストラクタ 21 ~Game_Scene(); //デストラクタ 22 23 void Update(); //更新 24 void Draw(); //描画 25 26 27private: 28 29 30}; 31 32#endif 33
cpp
1#include "Game_Scene.hpp" 2 3//コンストラクタ 4Game_Scene::Game_Scene(Scene_Type t) : Scene_base(t) 5{ 6 7} 8 9//更新 10void Game_Scene::Update() 11{ 12 printf("ああ"); 13} 14 15//描画 16void Game_Scene::Draw() 17{ 18 printf("ああ"); 19 20} 21 22//デストラクタ 23Game_Scene::~Game_Scene() 24{ 25 26} 27
Scene_Base.hpp と Game_Scene.hpp から不要な #include "Entry.hpp" を消すと直りますか? もしそうなら、原因と対策を説明できると思います。
あと、複数のファイルを貼り付けるときはファイル名も書いてください。
回答1件
あなたの回答
tips
プレビュー