现有一个基类(class Base)包括name、sex两个数据成员和一个getdata( )成员函数,编程实现以下要求: (1)从基类中派生出一个学生类,增加score(分数)数据成员和用于输入数据的get1( )、用于输出三个数据成员的display1( ); (2)从基类中派生出一个教师类,增加salary(工资)数据成员和用于输入数据的get2( )、用于输出三个数据成员的display2( )。 (3)为上述2个派生类分别添加构造函数。请编程验证。
时间: 2024-03-02 16:49:42 浏览: 59
定义基类person,数据成员name,sex,age,构造函数,析构函数,输出name,sex,age的函数display()。②定义公有派生类student
好的,这是你的问题:
现有一个基类(class Base)包括name、sex两个数据成员和一个getdata( )成员函数,编程实现以下要求: (1)从基类中派生出一个学生类,增加score(分数)数据成员和用于输入数据的get1( )、用于输出三个数据成员的display1( ); (2)从基类中派生出一个教师类,增加salary(工资)数据成员和用于输入数据的get2( )、用于输出三个数据成员的display2( )。 (3)为上述2个派生类分别添加构造函数。请编程验证。
以下是代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Base {
protected:
string name;
char sex;
public:
void getdata() {
cout << "请输入姓名:";
cin >> name;
cout << "请输入性别:";
cin >> sex;
}
};
class Student : public Base {
protected:
int score;
public:
Student(string n, char s, int sc) : Base() {
name = n;
sex = s;
score = sc;
}
void get1() {
getdata();
cout << "请输入分数:";
cin >> score;
}
void display1() {
cout << "姓名:" << name << endl;
cout << "性别:" << sex << endl;
cout << "分数:" << score << endl;
}
};
class Teacher : public Base {
protected:
int salary;
public:
Teacher(string n, char s, int sa) : Base() {
name = n;
sex = s;
salary = sa;
}
void get2() {
getdata();
cout << "请输入工资:";
cin >> salary;
}
void display2() {
cout << "姓名:" << name << endl;
cout << "性别:" << sex << endl;
cout << "工资:" << salary << endl;
}
};
int main() {
Student stu("张三", 'M', 90);
stu.display1();
Teacher tea("李四", 'F', 8000);
tea.display2();
return 0;
}
```
输出结果为:
```
姓名:张三
性别:M
分数:90
姓名:李四
性别:F
工资:8000
```
以上就是我根据你的要求编写的代码,希望对你有所帮助。
阅读全文