J'essaie d'allouer dynamiquement un tableau de classes de base (Student), puis d'affecter des pointeurs aux classes dérivées (Math) à chaque emplacement de tableau. Je peux le faire fonctionner en créant un seul pointeur vers la classe de base, puis en l'affectant à une classe dérivée, mais lorsque j'essaie d'assigner au pointeur un tableau dynamiquement alloué de classes de base, il échoue. J'ai posté les fragments de code que j'utilise ci-dessous. Donc, fondamentalement, ma question est la suivante: pourquoi l'allocation dynamique ne fonctionne-t-elle pas?Allocation dynamique de classes, avec Inheritance issue
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
D'accord, je ne vois cela dans le C++ livre que j'apprends de quelque part, donc je vais devoir examiner cela. – dubyaa
'new Student * [numStudents];' Pourquoi y a-t-il un pointeur? Est-ce la seule partie de ce que je ne comprends pas. – dubyaa
@dubyaa: Parce que vous devez créer un tableau d'éléments, dont chacun est un 'étudiant *'. –