Как сделать массив с полиморфизмом в C ++? [Дубликат]

На этот вопрос уже есть ответ здесь:

Полиморфизм и Указатели на массивы [дубликаты] 3 ответа
class Base1
{
    private:
     int testInput; 
    public:
       Base1();
       virtual int GetRow(void) = 0;
 };

 Base1::Base1()
 {
   testInput = 0;
 }

class table : public Base1
{
   private:
    int row;    
   public:  
     table();
     virtual int GetRow(void);
};

table::table()
{   
  //Contructor
  row = 5;
}

int table::GetRow()
{
  return row;
}

int main ()
{
  Base1* pBase = new table[3];
  pBase[0].GetRow();
  pBase[1].GetRow();   //when i get to  this line, the compiler keep saying access
                           // violation.
  pBase[2].GetRow();

  return 0;
}

Я пытаюсь создать массив из 3 таблиц класса. Требование - использовать базовый объект для этого.

Base1 * pBase = new table[3];  

выглядишь хорошо для меня. Но когда я попытался получить доступ к каждой таблице, компилятор сказал:нарушение доступа. Я нене знаю, что не так с этим кодом. Я'Я использую Visual Studio 2010, хотя.

Ответы на вопрос(4)

Ваш ответ на вопрос