用C++语言设计两个基类:教师类(Teacher)、干部类(Cadre),采用多重继承派生出新类: Teacher_Cadre 1、两个基类都包含:姓名、年龄、性别、地址、电话等; 在 Teacher 类中包含:title(职称),在Cadre 类中包含:post(职务),在Teacher_Cadre 中包含:wages(工资); 2、两个基类都包含:display()函数,分别输出本类中的成员信息; 3、在两个基类中的姓名、年龄、性别、地址、电话等数据成员使用相同名字,在派生 类中引用这些数据成员时,采用指定作用域的方式; 4、在派生类Teacher_Cadre 的成员函数Show()中调用Teacher 类中的display()函 数,输出姓名、年龄、性别、地址、电话; 5、使用对象数组保存输入的对象;
时间: 2023-07-04 17:23:54 浏览: 129
多重继承综合举例-谭浩强c语言
以下是针对题目的C++代码实现:
```
#include <iostream>
#include <string>
using namespace std;
class Teacher {
protected:
string name;
int age;
char gender;
string address;
string phone;
string title; //职称
public:
void display() {
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "性别:" << gender << endl;
cout << "地址:" << address << endl;
cout << "电话:" << phone << endl;
cout << "职称:" << title << endl;
}
};
class Cadre {
protected:
string name;
int age;
char gender;
string address;
string phone;
string post; //职务
public:
void display() {
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "性别:" << gender << endl;
cout << "地址:" << address << endl;
cout << "电话:" << phone << endl;
cout << "职务:" << post << endl;
}
};
class Teacher_Cadre : public Teacher, public Cadre {
protected:
double wages; //工资
public:
void Show() {
Teacher::display();
}
};
int main() {
Teacher_Cadre tc[3];
for (int i = 0; i < 3; i++) {
cout << "请输入第" << i+1 << "个教师干部的信息:" << endl;
cout << "姓名:";
cin >> tc[i].name;
cout << "年龄:";
cin >> tc[i].age;
cout << "性别:";
cin >> tc[i].gender;
cout << "地址:";
cin >> tc[i].address;
cout << "电话:";
cin >> tc[i].phone;
cout << "职称:";
cin >> tc[i].title;
cout << "职务:";
cin >> tc[i].post;
cout << "工资:";
cin >> tc[i].wages;
}
for (int i = 0; i < 3; i++) {
cout << endl << "第" << i+1 << "个教师干部的信息:" << endl;
tc[i].Show();
}
return 0;
}
```
代码中使用了多重继承的方式派生出了一个新类Teacher_Cadre,同时在派生类中也包含了两个基类的成员变量和成员函数。在派生类中,为了避免两个基类中变量重名的问题,使用了指定作用域的方式进行引用。在主函数中,使用对象数组保存输入的3个对象,并分别调用Show函数输出每个对象的信息。
阅读全文