代码实现
定义一个学生类:成员--> 姓名、年龄、成绩以及相关函数
定义一个老师类:成员--> 年龄、职称以及相关函数
由学生类和老师类共同派生出研究生类:成员--> 性别 实例化就研究生类的对象,并输出该对象的所有信息
我对此的理解是:老师和学生是表层身份,他们都是研究生的一员。此事也颇为简单,因为老师和学生的成员变量不同,所以可以写两个构造函数让它重载
//学生类
class Student
{
public:
Student(){}
Student(string c, int a, float b):name(c), age(a), score(b){}
void show()
{
cout << "学生姓名:" << name << " 年龄:" << age << " 成绩:" << score;
}
protected:
string name;
int age;
float score;
};
//教师类
class Teacher
{
public:
Teacher(){}
Teacher(int a, string b):age(a), title(b){}
void show()
{
cout << "年龄:" << age << " 职称:" << title;
}
protected:
int age;
string title; //职称
};
然后是研究生类
/研究生
class graduate :public Student, public Teacher
{
public:
graduate(){}
graduate(string a, int b, float c, string f):Student(a, b, c), sexual(f){} //学生研究生
graduate(int d, string e, string f):Teacher(d, e), sexual(f){} //教师研究生
void stu_show()
{
Student::show();
cout << " 性别:" << sexual << endl;
}
void tea_show()
{
Teacher::show();
cout << " 性别:" << sexual << endl;
}
private:
string sexual; //性别
};
使用演示:
int main()
{
graduate stu1("张3",20,98,"男");
stu1.stu_show();
graduate tea1(50, "副教授", "男");
tea1.tea_show();
return 0;
}