我一直在使用动态数组,但我必须添加和删除项目。我读过不建议使用 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();
};