Программа на C ++ с использованием вектора указателей унаследованных классов компилируется, но не запускается - PullRequest
0 голосов
/ 28 мая 2020

У меня есть абстрактный класс с именем box, который имеет только строковый параметр с именем type и виртуальную строку, которая возвращает только этот параметр. Этот класс является отцом другого класса, называемого Reward, у которого есть конструктор, который заполняет тип параметра и ту же функцию Box. Я пытаюсь поместить их в класс под названием Board, который в основном представляет собой вектор указателей этих классов, у меня есть конструктор, который просто заполняет вектор наградами. Проблема заключается в том, что я компилирую его, но не запускается, и я не могу найти, в чем проблема. Спасибо

#include <iostream>
#include <string>
#include <vector>

using namespace std;

class Box{
protected:
  string type;
public:
  virtual string getType()=0;
};

class Reward : public Box{
public:
  string getType(){
    return type;
  }
  Reward(){
    type = "Reward";
  }
};

class Board{
private:
  vector<Box *> Table;
public:
  Board(){
    for (int i=0;i<=30;i++){
      Table[i]=new Reward;
    }
  }
  string getBoxes(int i){
    return Table[i]->getType();
  }
};


int main(){
  Board game;
  string toPrint=game.getBoxes(2);
  cout<<toPrint;
  return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...