Динамический массив объектов класса

Есть класс Person.Его наследуют классы Student и Teacher

Есть текстовый файл с которого считывает данные. Там где один это студент, где два это учитель.Цифра семь это мое количество человек(потом в цикле использую когда считываю инфу с файла)

7
1 Mike 17 PMI 89
1 Nick 19 PMI 67
2 John 29 English 7
2 Lee 45 Programming 20
1 Lina 21 PMP 71
2 Keyn 42 Math 12
2 Lee 45 History 20

Код в main() :

int n, type;
  ifstream in("Person.txt");
  in >> n;
  Person **arr = new Person*[n];

  for (int i = 0; i < n; i++)
  {

    in >> type;
    switch (type)
    {

    case 1: arr[i] = new Student;  break;
    case 2: arr[i] = new Teacher; break;

    default: arr[i] = new Person;
      break;
    }
    arr[i]->input(in); //Вывожу на экран консоли то что в Person.txt


  }

С многомерными динамическими массивами знаком но не использовал с классами. Не до конца понимаю что делает эта строчка Person **arr = new Person*[n];

new Person*[n] это я создаю новый объект класса персон или массив размером n ?Если массив то почему не тип int

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Igor

что делает эта строчка Person **arr = new Person*[n];

Вы создаете массив указателей типа Person.

→ Ссылка