定义抽象基类CWhuter,包括存储、输出两个纯虚函数,定义公有派生类CTeather、CStudent、CEmployee,丰富各数据成员定义,在main函数中进行仿真,生成多个成员对象,通过基类指针进行存储及输出
时间: 2024-03-14 20:42:56 浏览: 16
好的,我理解了你的问题。以下是对应的 C++ 代码示例:
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 定义抽象基类
class CWhuter {
public:
virtual void store() = 0; // 存储纯虚函数
virtual void output() = 0; // 输出纯虚函数
};
// 公有派生类:教师类
class CTeacher : public CWhuter {
public:
CTeacher(string _name, int _age, string _subject) : name(_name), age(_age), subject(_subject) {}
void store() override {
// 存储教师信息
cout << "正在存储教师信息..." << endl;
}
void output() override {
// 输出教师信息
cout << "姓名:" << name << ",年龄:" << age << ",科目:" << subject << endl;
}
private:
string name; // 教师姓名
int age; // 教师年龄
string subject; // 教授科目
};
// 公有派生类:学生类
class CStudent : public CWhuter {
public:
CStudent(string _name, int _age, int _score) : name(_name), age(_age), score(_score) {}
void store() override {
// 存储学生信息
cout << "正在存储学生信息..." << endl;
}
void output() override {
// 输出学生信息
cout << "姓名:" << name << ",年龄:" << age << ",分数:" << score << endl;
}
private:
string name; // 学生姓名
int age; // 学生年龄
int score; // 学生分数
};
// 公有派生类:员工类
class CEmployee : public CWhuter {
public:
CEmployee(string _name, int _age, string _department) : name(_name), age(_age), department(_department) {}
void store() override {
// 存储员工信息
cout << "正在存储员工信息..." << endl;
}
void output() override {
// 输出员工信息
cout << "姓名:" << name << ",年龄:" << age << ",部门:" << department << endl;
}
private:
string name; // 员工姓名
int age; // 员工年龄
string department; // 所在部门
};
int main() {
// 定义多个成员对象
CTeacher teacher("张三", 35, "数学");
CStudent student("李四", 18, 95);
CEmployee employee("王五", 28, "人力资源");
// 定义基类指针数组
vector<CWhuter*> whuters = {&teacher, &student, &employee};
// 遍历基类指针数组,存储和输出各个成员的信息
for (auto p : whuters) {
p->store(); // 调用存储函数
p->output(); // 调用输出函数
cout << endl;
}
return 0;
}
```
在上述代码中,我们定义了抽象基类 `CWhuter`,其中包含存储和输出两个纯虚函数。然后我们定义了三个公有派生类,包括教师类 `CTeacher`、学生类 `CStudent` 和员工类 `CEmployee`,并且丰富了各自的数据成员定义。在 `main` 函数中,我们生成了多个成员对象,并通过基类指针进行存储和输出,实现了仿真操作。