用c++分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求: ① 在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。 ② 在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务), 在Teacher_Cadre类中还包含数据成员wages(工资)。 ③ 对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。 ④ 在类体中声明成员函数,在类外定义成员函数。 ⑤ 在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再用cout语句输出职务与工资。
时间: 2024-02-19 21:01:32 浏览: 112
好的,我可以帮你解答这个问题。
以下是一份可能的实现代码:
```c++
#include <iostream>
#include <string>
using namespace std;
class Teacher {
public:
string name;
int age;
char gender;
string address;
string phone;
string title;
void display() {
cout << "Name: " << name << endl;
cout << "Age: " << age << endl;
cout << "Gender: " << gender << endl;
cout << "Title: " << title << endl;
cout << "Address: " << address << endl;
cout << "Phone: " << phone << endl;
}
};
class Cadre {
public:
string name;
int age;
char gender;
string address;
string phone;
string post;
void display() {
cout << "Name: " << name << endl;
cout << "Age: " << age << endl;
cout << "Gender: " << gender << endl;
cout << "Post: " << post << endl;
cout << "Address: " << address << endl;
cout << "Phone: " << phone << endl;
}
};
class Teacher_Cadre : public Teacher, public Cadre {
public:
double wages;
void show() {
Teacher::display();
cout << "Post: " << Cadre::post << endl;
cout << "Wages: " << wages << endl;
}
};
int main() {
Teacher_Cadre tc;
tc.name = "Tom";
tc.age = 30;
tc.gender = 'M';
tc.address = "123 Main St.";
tc.phone = "555-1234";
tc.title = "Professor";
tc.post = "Chairman";
tc.wages = 5000;
tc.show();
return 0;
}
```
在上面的代码中,我们定义了 `Teacher` 类和 `Cadre` 类,分别包含姓名、年龄、性别、地址、电话等数据成员,并定义了一个 `display()` 方法用于显示这些数据成员。然后,我们定义了一个 `Teacher_Cadre` 类,采用多重继承方式由 `Teacher` 类和 `Cadre` 类派生而来,并添加了一个 `wages` 数据成员和一个 `show()` 方法用于显示所有数据成员。
在 `show()` 方法中,我们首先调用 `Teacher::display()` 方法,输出姓名、年龄、性别、职称、地址、电话等数据成员,然后再用 `cout` 语句输出职务与工资。
希望这可以帮助你解决问题。
阅读全文