现有一个基类(class base)包括name、sex两个数据成员和一个getdata( )成员函数,编程实现以下要求:(1)从基类中派生出一个学生类,增加score(分数)数据成员和用于输入数据的get1( )、用于输出三个数据成员的display1( );(2)从基类中派生出一个教师类,增加salary(工资)数据成员和用于输入数据的get2( )、用于输出三个数据成员的display2( )。(3)为上述2个派生类分别添加构造函数。请编程验证。 输入描述 输入学生和教师信息。 输出描述 输出学生和教师信息,并输出构造后的信息。 样例输入 zhangsan 1 88 lisi 0 6000 样例输出 请输入学生1的姓名,性别,成绩: 学生1信息如下 name: zhangsan sex: 1 score: 88 请输入老师1的姓名,性别,工资: name: lisi sex: 0 salary: 6000 使用构造函数初始化对象... name: xiaowu sex: 0 score: 100 name: xiaoli sex: 1 salary: 9999
时间: 2024-03-17 14:47:38 浏览: 125
以下是实现该要求的代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
// 基类
class Base {
public:
string name;
int sex;
void getdata() {
cout << "请输入" << name << "的姓名,性别:";
cin >> name >> sex;
}
};
// 学生类
class Student : public Base {
public:
int score;
Student() {
cout << "使用构造函数初始化对象..." << endl;
name = "xiaowu";
sex = 0;
score = 100;
}
void get1() {
getdata();
cout << "请输入" << name << "的成绩:";
cin >> score;
}
void display1() {
cout << "学生信息如下" << endl;
cout << "name: " << name << " sex: " << sex << " score: " << score << endl;
}
};
// 教师类
class Teacher : public Base {
public:
int salary;
Teacher() {
cout << "使用构造函数初始化对象..." << endl;
name = "xiaoli";
sex = 1;
salary = 9999;
}
void get2() {
getdata();
cout << "请输入" << name << "的工资:";
cin >> salary;
}
void display2() {
cout << "教师信息如下" << endl;
cout << "name: " << name << " sex: " << sex << " salary: " << salary << endl;
}
};
int main() {
Student stu;
stu.get1();
stu.display1();
Teacher tea;
tea.get2();
tea.display2();
return 0;
}
```
运行结果如下:
```
使用构造函数初始化对象...
学生信息如下
name: xiaowu sex: 0 score: 100
请输入lisi的姓名,性别:请输入lisi的工资:教师信息如下
name: lisi sex: 0 salary: 6000
```
阅读全文