我正在尝试使用名为currentState
的抽象类的指针(称为GameState
),然后将其用于存储所述类的实现的实例(例如,{{1} },MainMenuState
,OverworldState
等。)
BattleState
抽象类'构造函数总是需要1个参数(一个要绘制的窗口),所以我没有没有参数的默认构造函数。这会导致错误(没有适当的默认构造函数)。
解决这个问题的最佳做法是什么?
GameState
答案 0 :(得分:1)
改为存储指针
std::map<std::string, GameState*> gameStates{};
答案 1 :(得分:0)
我没有找到我的问题的答案,因为我认为不可能做我想做的事。
我最终做的是删除抽象类中的参数(GameLoopObject和GameState现在不需要窗口)并仅在类的实现中实现参数(窗口)(fi,MainMenuState(sf :: referencewindow&amp; ; w))
现在我可以制作我想要制作的指针,因为它们的构造函数现在都是默认的。