我一直在使用动态数组,但我必须添加和删除项目。我读过不建议使用 realloc 或调整数组大小时可以简单地使用 std::vector 但是我在将数组更改为向量时遇到问题。
这是我当前的代码:
int main(){
    // This is what I'm doing now
    State*arr[3];
    int pos = 0;
    arr[0] = new Menu();
    // How do I change it to a vector? This is what I'm trying:
    std::vector<State> vec;
    vec.push_back(Menu());
    ...
}
但是我不断收到错误消息:“无法分配抽象类型'状态'的对象”我做错了什么?
这些是类状态和菜单:
class State
{
public:
    virtual ~State() {};
    virtual void capture_events() = 0;
    virtual void logic() = 0;
    virtual void render() = 0;
};
Menu : public State
{
public:
    Menu();
    ~Menu();
    void capture_events();
    void logic();
    void render();
};