分别声明Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cader类。要求: ①在两个基类种豆包含姓名、年龄、性别、地址、电话等数据成员。 ②在Teacher类中还包含数据成员title(职称),在Cader 类中还包含数据成员post(职务)。在Teacher_Cader类中还包含数据成员wages(工资)。 ③在对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。 ④在类体中声明成员函数,在类外定义数据成员。 ⑤在派生类Teacher_Cader的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再调用cout语句输出职务和工资。
时间: 2023-07-14 19:12:09 浏览: 135
以下是代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
// 声明Teacher类
class Teacher {
protected:
string name;
int age;
char sex;
string address;
string tel;
string title; // 职称
public:
void display();
};
// 声明Cadre类
class Cadre {
protected:
string name;
int age;
char sex;
string address;
string tel;
string post; // 职务
public:
void display();
};
// 在Teacher类中定义display函数
void Teacher::display() {
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "性别:" << sex << endl;
cout << "职称:" << title << endl;
cout << "地址:" << address << endl;
cout << "电话:" << tel << endl;
}
// 在Cadre类中定义display函数
void Cadre::display() {
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "性别:" << sex << endl;
cout << "职务:" << post << endl;
cout << "地址:" << address << endl;
cout << "电话:" << tel << endl;
}
// 声明Teacher_Cadre类,多重继承自Teacher和Cadre类
class Teacher_Cadre : public Teacher, public Cadre {
private:
double wages; // 工资
public:
void show();
};
// 在Teacher_Cadre类中定义show函数
void Teacher_Cadre::show() {
Teacher::display(); // 调用Teacher类中的display函数
cout << "职务:" << post << endl;
cout << "工资:" << wages << endl;
}
int main() {
Teacher_Cadre tc;
tc.name = "张三";
tc.age = 30;
tc.sex = 'M';
tc.address = "北京市朝阳区";
tc.tel = "13888888888";
tc.title = "教授";
tc.post = "系主任";
tc.wages = 10000.0;
tc.show();
return 0;
}
```
输出结果:
```
姓名:张三
年龄:30
性别:M
职称:教授
地址:北京市朝阳区
电话:13888888888
职务:系主任
工资:10000
```
阅读全文