Я пытаюсь динамически выделять массив базовых (Student) классов, а затем назначать указатели на производные (Math) классы для каждого слота массива. Я могу заставить его работать, создав единственный указатель на базовый класс, а затем назначив это производному классу, но когда я пытаюсь назначить указатель на динамически выделенный массив базовых классов, он терпит неудачу. Я разместил фрагменты кода, который я использую ниже. Так что в основном мой вопрос: почему не динамически выделяется одна работающая?Динамическое распределение классов с проблемой наследования
Student* studentList = new Student[numStudents];
Math* temp = new Math(name, l, c, q, t1, t2, f);
studentList[0] = temp;
/*Fragment Above Gives Error:
main.cpp: In function âint main()â:
main.cpp:55: error: no match for âoperator=â in â* studentList = tempâ
grades.h:13: note: candidates are: Student& Student::operator=(const Student&)*/
Student * testptr;
Math * temp = new Math(name, l, c, q, t1, t2, f);
testptr = temp
//Works
Хорошо, я видел это в C++ книгу, которую я чему-то научился, поэтому я должен ее рассмотреть. – dubyaa
'new Student * [numStudents];' Почему там указатель? Единственная часть этого, которую я не понимаю. – dubyaa
@dubyaa: Поскольку вам нужно создать массив элементов, каждый из которых является «Student *». –