c ++指向抽象类(带参数)的指针,没有默认构造函数

时间:2018-01-18 02:48:54

标签: pointers abstract-class default-constructor

我正在尝试使用名为currentState的抽象类的指针(称为GameState),然后将其用于存储所述类的实现的实例(例如,{{1} },MainMenuStateOverworldState等。)

BattleState抽象类'构造函数总是需要1个参数(一个要绘制的窗口),所以我没有没有参数的默认构造函数。这会导致错误(没有适当的默认构造函数)。

解决这个问题的最佳做法是什么?

GameState

2 个答案:

答案 0 :(得分:1)

改为存储指针

std::map<std::string, GameState*> gameStates{};

答案 1 :(得分:0)

我没有找到我的问题的答案,因为我认为不可能做我想做的事。

我最终做的是删除抽象类中的参数(GameLoopObject和GameState现在不需要窗口)并仅在类的实现中实现参数(窗口)(fi,MainMenuState(sf :: referencewindow&amp; ; w))

现在我可以制作我想要制作的指针,因为它们的构造函数现在都是默认的。