// 补充必要的头文件(原代码缺失) #include <iostream> #include <string> using namespace std; // 基类:人员基本信息 class Person // 类名首字母大写,符合C++命名规范 { private: int age; // 年纪 string name; // 姓名 string identity; // 身份(原shenfen,英文更易读) public: // 优化点1:string类型默认值改为空字符串"",而非NULL Person(int m_age = 0, string m_name = "", string m_identity = "") : age(m_age), name(m_name), identity(m_identity) { // 可选:增加参数合法性检查,增强健壮性 if (age < 0) age = 0; // 年龄不能为负数 } // 虚函数,为多态提供基础 virtual void show() const { cout << "信息如下:" << endl; cout << "年龄:" << age << endl; cout << "姓名:" << name << endl; cout << "身份:" << identity << endl; } }; // 派生类:学生 class Student : public Person { private: string education; // 学历(原xueli,英文更易读) public: // 优化点1:string默认值改为"" Student(int age = 0, string name = "", string identity = "", string m_education = "") : Person(age, name, identity), education(m_education) {} void show() const override // 补充override关键字,明确重写基类虚函数 { Person::show(); cout << "学历:" << education << endl; } }; // 派生类:老师 class Teacher : public Person { private: string teachingSubject; // 教学科目(原Subject,命名更清晰) public: // 优化点1:string默认值改为"",修正参数名拼写错误(原m_subjcet) Teacher(int age = 0, string name = "", string identity = "", string m_subject = "") : Person(age, name, identity), teachingSubject(m_subject) {} void show() const override { Person::show(); cout << "教学科目:" << teachingSubject << endl; } }; // 派生类:职工 class Employee : public Person { private: string workUnit; // 工作单位(原unit,命名更清晰) public: // 优化点1:string默认值改为"" Employee(int age = 0, string name = "", string identity = "", string m_unit = "") : Person(age, name, identity), workUnit(m_unit) {} void show() const override { Person::show(); cout << "工作单位:" << workUnit << endl; } }; // 派生类:在职读书的老师(原Study_Work,类名更直观) class TeacherWithStudy : public Person { private: string teachingSubject; // 教学科目(命名和Teacher类保持一致) string education; // 学历(命名和Student类保持一致) public: // 优化点1:string默认值改为"" TeacherWithStudy(int age = 0, string name = "", string identity = "", string m_subject = "", string m_education = "") : Person(age, name, identity), teachingSubject(m_subject), education(m_education) {} void show() const override { Person::show(); cout << "教学科目:" << teachingSubject << endl; cout << "学历:" << education << endl; } }; int main() { Person* p1 = nullptr, * p2 = nullptr, * p3 = nullptr, * p4 = nullptr; // 创建各派生类对象 Student st(22, "王五", "学生", "高中生"); p1 = &st; p1->show(); cout << endl; Teacher te(30, "张三", "老师", "数学"); p2 = &te; p2->show(); cout << endl; Employee em(45, "老王", "职工", "保安"); p3 = &em; p3->show(); cout << endl; TeacherWithStudy sw(26, "李四", "在职读书老师", "大学英语", "研究生"); p4 = &sw; p4->show(); return 0; }大学有这样几类人员:学生、教师、职员和在职读书的教师。给出这几类人员的类描述。
张小明
前端开发工程师
数字图像处理篇---图像合成
核心比喻:图像世界的“器官移植手术” 想象你有两张照片: A图: 一个人的完美笑脸(但背景很乱)。 B图: 一片美丽的海滩风光(但没人)。 图像合成的目标:把A图的笑脸&am…
Highcharts 配置说明
Highcharts 配置说明 Highcharts 是一款流行的图表库,能够创建各种图表类型,从柱状图到散点图,从折线图到雷达图等。本篇文章旨在为您详细解读 Highcharts 的配置说明,帮助您快速上手并应用 Highcharts 创建各种类型的图表。 标题配置 标题结构 Highcharts 的标题配置项…
介绍 Elastic Workflows:用于 Elasticsearch 的原生自动化
作者:来自 Elastic Sumana Mannem James Spiteri 在 Elasticsearch 中原生统一脚本化自动化和 AI agents。消除集成,直接对你的数据采取行动。 今天,我们正式推出 Elastic Workflows,这是直接内置在 Elasticsearch 中的自动化引擎…
C++ 循环
C++ 循环 引言 C++作为一种高效、灵活的编程语言,广泛应用于软件开发领域。循环语句是C++中的一种基本控制结构,用于重复执行一组语句。掌握循环语句对于提高编程效率、简化代码逻辑具有重要意义。本文将详细介绍C++中的循环结构,包括循环的基本概念、类型、应用以及注意事…
5吨级eVTOL横空出世,中国航空技术如何实现弯道超车?
📌 目录 ✈️ 中国航空炸场!全球首款5吨级电动飞机首飞,老外直呼看不懂一、首飞实测封神:5吨“大块头”,灵活又能飞(一)核心参数拉满,碾压同类产品(二)通俗解…
2026免费降AI率工具测评:对比这几款降AI工具,到底哪款效果最好?
转眼间就到过年了,先别管过年到底还有没有压岁钱了,最要紧的应该是论文,今年论文进度普遍都提前了,导师们各种催催催,真的亚历山大啊。 而且!!!论文现在并不是写出来就完事了&#…