#include <iostream>
#include <string>
using namespace std;
// 教师类(基类1)
class Teacher {
protected:
// 公共数据成员:姓名、年龄、性别、地址、电话
string name;
int age;
string sex;
string addr;
string phone;
string title; // 职称(教师独有)
public:
// 构造函数声明
Teacher(string n, int a, string s, string ad, string p, string t);
// 显示信息函数声明
void display();
};
// 干部类(基类2)
class Cadre {
protected:
// 公共数据成员(与Teacher类同名)
string name;
int age;
string sex;
string addr;
string phone;
string post; // 职务(干部独有)
public:
// 构造函数声明
Cadre(string n, int a, string s, string ad, string p, string po);
};
// 教师干部类(多重继承派生类)
class Teacher_Cadre : public Teacher, public Cadre {
private:
float wages; // 工资(派生类独有)
public:
// 构造函数声明
Teacher_Cadre(string n, int a, string s, string ad, string p, string t, string po, float w);
// 显示信息函数声明
void show();
};
// ==================== 类外实现成员函数 ====================
// Teacher类构造函数
Teacher::Teacher(string n, int a, string s, string ad, string p, string t) {
name = n;
age = a;
sex = s;
addr = ad;
phone = p;
title = t;
}
// Teacher类显示函数
void Teacher::display() {
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "性别:" << sex << endl;
cout << "职称:" << title << endl;
cout << "地址:" << addr << endl;
cout << "电话:" << phone << endl;
}
// Cadre类构造函数
Cadre::Cadre(string n, int a, string s, string ad, string p, string po) {
name = n;
age = a;
sex = s;
addr = ad;
phone = p;
post = po;
}
// Teacher_Cadre类构造函数(解决同名成员,指定作用域初始化)
Teacher_Cadre::Teacher_Cadre(string n, int a, string s, string ad, string p, string t, string po, float w)
: Teacher(n, a, s, ad, p, t), Cadre(n, a, s, ad, p, po) {
wages = w; // 初始化工资
}
// Teacher_Cadre类显示函数(调用基类display,指定作用域访问同名成员)
void Teacher_Cadre::show() {
// 调用教师类的display函数,输出基础信息+职称
Teacher::display();
// 直接输出职务(来自Cadre类)和工资
cout << "职务:" << Cadre::post << endl;
cout << "工资:" << wages << "元" << endl;
}
// ==================== 主函数测试 ====================
int main() {
// 创建教师干部对象
Teacher_Cadre tc("张三", 40, "男", "北京市海淀区", "13800138000", "副教授", "系主任", 8500.50);
// 调用显示函数
tc.show();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8g5pWZ5biI57G777yI5Z+657G7Me+8iQpjbGFzcyBUZWFjaGVyIHsKcHJvdGVjdGVkOgogICAgLy8g5YWs5YWx5pWw5o2u5oiQ5ZGY77ya5aeT5ZCN44CB5bm06b6E44CB5oCn5Yir44CB5Zyw5Z2A44CB55S16K+dCiAgICBzdHJpbmcgbmFtZTsKICAgIGludCBhZ2U7CiAgICBzdHJpbmcgc2V4OwogICAgc3RyaW5nIGFkZHI7CiAgICBzdHJpbmcgcGhvbmU7CiAgICBzdHJpbmcgdGl0bGU7ICAvLyDogYznp7DvvIjmlZnluIjni6zmnInvvIkKcHVibGljOgogICAgLy8g5p6E6YCg5Ye95pWw5aOw5piOCiAgICBUZWFjaGVyKHN0cmluZyBuLCBpbnQgYSwgc3RyaW5nIHMsIHN0cmluZyBhZCwgc3RyaW5nIHAsIHN0cmluZyB0KTsKICAgIC8vIOaYvuekuuS/oeaBr+WHveaVsOWjsOaYjgogICAgdm9pZCBkaXNwbGF5KCk7Cn07CgovLyDlubLpg6jnsbvvvIjln7rnsbsy77yJCmNsYXNzIENhZHJlIHsKcHJvdGVjdGVkOgogICAgLy8g5YWs5YWx5pWw5o2u5oiQ5ZGY77yI5LiOVGVhY2hlcuexu+WQjOWQje+8iQogICAgc3RyaW5nIG5hbWU7CiAgICBpbnQgYWdlOwogICAgc3RyaW5nIHNleDsKICAgIHN0cmluZyBhZGRyOwogICAgc3RyaW5nIHBob25lOwogICAgc3RyaW5nIHBvc3Q7ICAvLyDogYzliqHvvIjlubLpg6jni6zmnInvvIkKcHVibGljOgogICAgLy8g5p6E6YCg5Ye95pWw5aOw5piOCiAgICBDYWRyZShzdHJpbmcgbiwgaW50IGEsIHN0cmluZyBzLCBzdHJpbmcgYWQsIHN0cmluZyBwLCBzdHJpbmcgcG8pOwp9OwoKLy8g5pWZ5biI5bmy6YOo57G777yI5aSa6YeN57un5om/5rS+55Sf57G777yJCmNsYXNzIFRlYWNoZXJfQ2FkcmUgOiBwdWJsaWMgVGVhY2hlciwgcHVibGljIENhZHJlIHsKcHJpdmF0ZToKICAgIGZsb2F0IHdhZ2VzOyAgLy8g5bel6LWE77yI5rS+55Sf57G754us5pyJ77yJCnB1YmxpYzoKICAgIC8vIOaehOmAoOWHveaVsOWjsOaYjgogICAgVGVhY2hlcl9DYWRyZShzdHJpbmcgbiwgaW50IGEsIHN0cmluZyBzLCBzdHJpbmcgYWQsIHN0cmluZyBwLCBzdHJpbmcgdCwgc3RyaW5nIHBvLCBmbG9hdCB3KTsKICAgIC8vIOaYvuekuuS/oeaBr+WHveaVsOWjsOaYjgogICAgdm9pZCBzaG93KCk7Cn07CgovLyA9PT09PT09PT09PT09PT09PT09PSDnsbvlpJblrp7njrDmiJDlkZjlh73mlbAgPT09PT09PT09PT09PT09PT09PT0KLy8gVGVhY2hlcuexu+aehOmAoOWHveaVsApUZWFjaGVyOjpUZWFjaGVyKHN0cmluZyBuLCBpbnQgYSwgc3RyaW5nIHMsIHN0cmluZyBhZCwgc3RyaW5nIHAsIHN0cmluZyB0KSB7CiAgICBuYW1lID0gbjsKICAgIGFnZSA9IGE7CiAgICBzZXggPSBzOwogICAgYWRkciA9IGFkOwogICAgcGhvbmUgPSBwOwogICAgdGl0bGUgPSB0Owp9CgovLyBUZWFjaGVy57G75pi+56S65Ye95pWwCnZvaWQgVGVhY2hlcjo6ZGlzcGxheSgpIHsKICAgIGNvdXQgPDwgIuWnk+WQje+8miIgPDwgbmFtZSA8PCBlbmRsOwogICAgY291dCA8PCAi5bm06b6E77yaIiA8PCBhZ2UgPDwgZW5kbDsKICAgIGNvdXQgPDwgIuaAp+WIq++8miIgPDwgc2V4IDw8IGVuZGw7CiAgICBjb3V0IDw8ICLogYznp7DvvJoiIDw8IHRpdGxlIDw8IGVuZGw7CiAgICBjb3V0IDw8ICLlnLDlnYDvvJoiIDw8IGFkZHIgPDwgZW5kbDsKICAgIGNvdXQgPDwgIueUteivne+8miIgPDwgcGhvbmUgPDwgZW5kbDsKfQoKLy8gQ2FkcmXnsbvmnoTpgKDlh73mlbAKQ2FkcmU6OkNhZHJlKHN0cmluZyBuLCBpbnQgYSwgc3RyaW5nIHMsIHN0cmluZyBhZCwgc3RyaW5nIHAsIHN0cmluZyBwbykgewogICAgbmFtZSA9IG47CiAgICBhZ2UgPSBhOwogICAgc2V4ID0gczsKICAgIGFkZHIgPSBhZDsKICAgIHBob25lID0gcDsKICAgIHBvc3QgPSBwbzsKfQoKLy8gVGVhY2hlcl9DYWRyZeexu+aehOmAoOWHveaVsO+8iOino+WGs+WQjOWQjeaIkOWRmO+8jOaMh+WumuS9nOeUqOWfn+WIneWni+WMlu+8iQpUZWFjaGVyX0NhZHJlOjpUZWFjaGVyX0NhZHJlKHN0cmluZyBuLCBpbnQgYSwgc3RyaW5nIHMsIHN0cmluZyBhZCwgc3RyaW5nIHAsIHN0cmluZyB0LCBzdHJpbmcgcG8sIGZsb2F0IHcpCiAgICA6IFRlYWNoZXIobiwgYSwgcywgYWQsIHAsIHQpLCBDYWRyZShuLCBhLCBzLCBhZCwgcCwgcG8pIHsKICAgIHdhZ2VzID0gdzsgIC8vIOWIneWni+WMluW3pei1hAp9CgovLyBUZWFjaGVyX0NhZHJl57G75pi+56S65Ye95pWw77yI6LCD55So5Z+657G7ZGlzcGxhee+8jOaMh+WumuS9nOeUqOWfn+iuv+mXruWQjOWQjeaIkOWRmO+8iQp2b2lkIFRlYWNoZXJfQ2FkcmU6OnNob3coKSB7CiAgICAvLyDosIPnlKjmlZnluIjnsbvnmoRkaXNwbGF55Ye95pWw77yM6L6T5Ye65Z+656GA5L+h5oGvK+iBjOensAogICAgVGVhY2hlcjo6ZGlzcGxheSgpOwogICAgLy8g55u05o6l6L6T5Ye66IGM5Yqh77yI5p2l6IeqQ2FkcmXnsbvvvInlkozlt6XotYQKICAgIGNvdXQgPDwgIuiBjOWKoe+8miIgPDwgQ2FkcmU6OnBvc3QgPDwgZW5kbDsKICAgIGNvdXQgPDwgIuW3pei1hO+8miIgPDwgd2FnZXMgPDwgIuWFgyIgPDwgZW5kbDsKfQoKLy8gPT09PT09PT09PT09PT09PT09PT0g5Li75Ye95pWw5rWL6K+VID09PT09PT09PT09PT09PT09PT09CmludCBtYWluKCkgewogICAgLy8g5Yib5bu65pWZ5biI5bmy6YOo5a+56LGhCiAgICBUZWFjaGVyX0NhZHJlIHRjKCLlvKDkuIkiLCA0MCwgIueUtyIsICLljJfkuqzluILmtbfmt4DljLoiLCAiMTM4MDAxMzgwMDAiLCAi5Ymv5pWZ5o6IIiwgIuezu+S4u+S7uyIsIDg1MDAuNTApOwogICAgCiAgICAvLyDosIPnlKjmmL7npLrlh73mlbAKICAgIHRjLnNob3coKTsKICAgIHJldHVybiAwOwp9