使用C++解决问题,并在解决后给出详细解题思路: 现有一个基类(class Base)包括name、sex两个数据成员和一个getdata( )成员函数,编程实现以下要求 从基类中派生出一个教师类,增加salary(工资)数据成员和用于输入数据的get2( )、用于输出三个数据成员的display2( )。 为派生类添加构造函数。请编程验证。
时间: 2023-12-14 13:38:14 浏览: 61
以下是基于C++的解决方案:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Base {
protected:
string name;
string sex;
public:
void getdata() {
cout << "Enter name: ";
getline(cin, name);
cout << "Enter sex: ";
getline(cin, sex);
}
};
class Teacher : public Base {
private:
double salary;
public:
Teacher() {
cout << "Creating a new teacher..." << endl;
getdata();
cout << "Enter salary: ";
cin >> salary;
}
void display2() {
cout << "Name: " << name << endl;
cout << "Sex: " << sex << endl;
cout << "Salary: " << salary << endl;
}
};
int main() {
Teacher t;
t.display2();
return 0;
}
```
首先我们定义了一个基类 `Base`,其中包括两个数据成员 `name` 和 `sex`,以及一个 `getdata()` 成员函数用于输入数据。
接下来,我们派生出一个教师类 `Teacher`,并在其中增加了一个 `salary` 数据成员,以及 `get2()` 和 `display2()` 成员函数,分别用于输入数据和输出三个数据成员。
在 `Teacher` 类中,我们添加了一个默认构造函数,并在其中调用了基类的 `getdata()` 成员函数来输入基类的数据成员,再输入 `salary`,最后通过 `display2()` 函数输出所有三个数据成员。
在 `main()` 函数中,我们创建了一个 `Teacher` 对象 `t`,并通过调用 `t.display2()` 函数输出所有三个数据成员。
运行程序,我们可以得到以下输出结果:
```
Creating a new teacher...
Enter name: John
Enter sex: Male
Enter salary: 5000
Name: John
Sex: Male
Salary: 5000
```
因此,我们成功地实现了派生类的构造函数,并验证了程序的正确性。
阅读全文