ошибка конструктора для массива структуры, ошибка msg: ни один экземпляр конструктора не соответствует списку аргументов - PullRequest
0 голосов
/ 08 сентября 2018
Person* studentList[5];
studentList[0] = new Student("Jane", 1);
studentList[1] = new Student("Jim", 2);
studentList[2] = new Student("Jacques", 3);
studentList[3] = new Student("Juan", 4);
studentList[4] = new Student("Junlian", 5);

Student - это дочерняя структура Person, последние 5 строк, показывающие ошибку, ни один экземпляр конструктора Student :: Student не соответствует списку аргументов, я не могу понять проблему.Вот конструктор:

Student::Student(char * na, int nm) {
this->name = na;
this->number = nm;
}

Буду признателен, если кто-нибудь сможет помочь объяснить.

1 Ответ

0 голосов
/ 08 сентября 2018

Строковые литералы в C ++ (в отличие от C) - const char*. Они не могут быть преобразованы в неконстантные char*. Для компиляции вашей программы вам нужно изменить сигнатуру конструктора на

Student::Student(const char* na, int nm)

Вы также должны убедиться, что name объявлено как const char* в Student.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...