分别定义Teacher类和Cader类,采用 多重继承方式由这两个类派生出新类 Teacher-Cader类。要求: (1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。 (2)在Teacher类中还包含数据成员 title,在Cader类中还包含数据成员 post。在Teacher-Cader类中还包含数据成员wages。 (3)对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名 宇,在引用这些数据成员时,指定作用 域。 (4)在类体中声明成员函数,在类外 定义成员函数。 (5)在派生类Teacher-Cader的成员 函数show中调用Teacher 类中的display函数,输出姓名、年龄、性别、title、地址、电话
时间: 2024-02-18 19:05:02 浏览: 69
下面是示例代码:
```c++
class Teacher {
protected:
string name;
int age;
char gender;
string address;
string phone;
string title;
public:
Teacher(string n, int a, char g, string addr, string ph, string t) {
name = n;
age = a;
gender = g;
address = addr;
phone = ph;
title = t;
}
void display() {
cout << "Name: " << name << endl;
cout << "Age: " << age << endl;
cout << "Gender: " << gender << endl;
cout << "Address: " << address << endl;
cout << "Phone: " << phone << endl;
cout << "Title: " << title << endl;
}
};
class Cader {
protected:
string name;
int age;
char gender;
string address;
string phone;
string post;
public:
Cader(string n, int a, char g, string addr, string ph, string p) {
name = n;
age = a;
gender = g;
address = addr;
phone = ph;
post = p;
}
};
class Teacher_Cader : public Teacher, public Cader {
private:
double wages;
public:
Teacher_Cader(string n, int a, char g, string addr, string ph, string t, string p, double w) : Teacher(n, a, g, addr, ph, t), Cader(n, a, g, addr, ph, p) {
wages = w;
}
void show() {
Teacher::display(); // 调用基类Teacher的display函数
cout << "Post: " << Cader::post << endl;
cout << "Wages: " << wages << endl;
}
};
```
在这个示例中,Teacher类和Cader类都包含了姓名、年龄、性别、地址、电话等数据成员。在Teacher类中还包含了一个title数据成员,而Cader类还包含了一个post数据成员。Teacher_Cader类继承了这两个类,并且包含了一个wages数据成员。在构造函数中,我们通过调用基类构造函数来初始化基类的数据成员。在show()成员函数中,我们调用了基类Teacher的display函数来输出姓名、年龄、性别、title、地址和电话,同时输出了Cader类的post和Teacher_Cader类的wages。注意,我们在引用两个基类中的相同数据成员时,使用作用域运算符来指定。
阅读全文