没有与参数列表匹配的构造函数

问题遇到的现象和发生背景

请问要怎么改?

img

用代码块功能插入代码,请勿粘贴截图
#include
#include
using namespace std;
class Student
{
public:
    Student(int , char[], char, float);
    int get_num() { return num; }
    char* get_name() { return name; }
    char get_sex() { return sex; }
    void display()
    {
        cout << "num: " << num << "\nname: " << name << "\nsex: " << sex << "\nscore: " << score << "\n\n";
    }
private:
    int num;
    char name[20];
    char sex;
    float score;
};

Student::Student(int n, char nam[], char s, float sco)
{
    num = n;
    strcpy(name, nam);
    sex = s;
    score = sco;
}

class Teacher
{
public:
    Teacher() {};
    Teacher(Student&);
    Teacher(int n, char nam[], char sex, float pay);
    void display();
private:
    int num;
    char name[20];
    char sex;
    float pay;
};

Teacher::Teacher(int n, char nam[], char s, float p)
{
    num = n;
    strcpy(name, nam);
    sex = s;
    pay = p;
}

Teacher::Teacher(Student& stud)
{
    num = stud.get_num();
    strcpy(name, stud.get_name());
    sex = stud.get_sex();
    pay = 1500;
}

void Teacher::display()
{
    cout << "num: " << num << "\nname: " << name << "\nsex: " << sex << "\npay: " << pay << "\n\n";
}

int main()
{
    Teacher teacher1(10001, "Li",'f', 1234.5), teacher2;
    Student student1(20010, "Wang", 'm', 89.5);
    cout << "student1: " << endl;
    student1.display();
    teacher2 = Teacher(student1);
    cout << "teacher2: " << endl;
    teacher2.display();
    return 0;

}

Student类需要加个无参构造函数

#include <iostream>
using namespace std;

class Student
{
public:
    Student() {}
    Student(int , char[], char, float);
    int get_num() { return num; }
    char* get_name() { return name; }
    char get_sex() { return sex; }
    void display()
    {
        cout << "num: " << num << "\nname: " << name << "\nsex: " << sex << "\nscore: " << score << "\n\n";
    }
private:
    int num;
    char name[20];
    char sex;
    float score;
};
Student::Student(int n, char nam[], char s, float sco)
{
    num = n;
    strcpy(name, nam);
    sex = s;
    score = sco;
}
class Teacher
{
public:
    Teacher() {};
    Teacher(Student&);
    Teacher(int n, char nam[], char sex, float pay);
    void display();
private:
    int num;
    char name[20];
    char sex;
    float pay;
};
Teacher::Teacher(int n, char nam[], char s, float p)
{
    num = n;
    strcpy(name, nam);
    sex = s;
    pay = p;
}
Teacher::Teacher(Student& stud)
{
    num = stud.get_num();
    strcpy(name, stud.get_name());
    sex = stud.get_sex();
    pay = 1500;
}
void Teacher::display()
{
    cout << "num: " << num << "\nname: " << name << "\nsex: " << sex << "\npay: " << pay << "\n\n";
}
int main()
{
    Teacher teacher1(10001, "Li",'f', 1234.5), teacher2;
    Student student1(20010, "Wang", 'm', 89.5);
    cout << "student1: " << endl;
    student1.display();
    teacher2 = Teacher(student1);
    cout << "teacher2: " << endl;
    teacher2.display();
    return 0;
}