结构数组的构造函数错误,错误msg:没有构造函数实例与参数列表匹配

时间:2018-09-08 03:19:28

标签: c++ constructor compiler-errors

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 :(得分:2)

C ++中的字符串文字(与C中不同)为const char*。它们不能转换为非常量char*。要编译程序,您需要将构造函数签名更改为

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

您还需要确保在name中将const char*声明为Student