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;
}
如果有人可以帮助解释,我将不胜感激。
答案 0 :(得分:2)
C ++中的字符串文字(与C中不同)为const char*
。它们不能转换为非常量char*
。要编译程序,您需要将构造函数签名更改为
Student::Student(const char* na, int nm)
您还需要确保在name
中将const char*
声明为Student
。