news 2026/3/18 11:54:56

大学有这样几类人员:学生、教师、职员和在职读书的教师。给出这几类人员的类描述。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大学有这样几类人员:学生、教师、职员和在职读书的教师。给出这几类人员的类描述。
// 补充必要的头文件(原代码缺失) #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; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/15 16:38:25

Linux:分包上传文件

目录分包合并解压分包 推荐使用360压缩 合并 cat xxx.zip.* > xxx.zip解压 unzip xxx.zip

作者头像 李华
网站建设 2026/3/15 13:28:20

C 环境设置

C 环境设置 引言 C语言作为一种历史悠久且应用广泛的编程语言,在系统编程、嵌入式开发等领域有着举足轻重的地位。在进行C语言编程之前,必须正确设置C语言开发环境。本文将详细介绍C语言环境的设置,包括开发工具的选择、编译器的安装、环境变量的配置等内容。 开发工具选…

作者头像 李华
网站建设 2026/3/15 23:52:23

AI上下文工程解密:提示工程架构师的终极指南

AI上下文工程解密&#xff1a;提示工程架构师的终极指南 一、引言&#xff1a;为什么你的AI总是“听不懂”&#xff1f; 1.1 一个扎心的痛点&#xff1a;你写的Prompt&#xff0c;AI真的懂吗&#xff1f; 上周凌晨3点&#xff0c;我在客户的AI客服系统排查问题——用户明明说…

作者头像 李华
网站建设 2026/3/15 16:38:28

提示工程学习型组织知识管理工具:架构师的10个推荐

提示工程学习型组织知识管理工具&#xff1a;架构师的10个推荐 关键词 提示工程&#xff08;Prompt Engineering&#xff09;、学习型组织&#xff08;Learning Organization&#xff09;、知识管理&#xff08;Knowledge Management&#xff09;、工具选型&#xff08;Tool Se…

作者头像 李华
网站建设 2026/3/15 23:52:24

Cassandra 性能优化:10 个技巧让你的查询速度翻倍

Cassandra 性能优化&#xff1a;10 个技巧让你的查询速度翻倍 关键词&#xff1a;Cassandra 性能优化、数据模型设计、分区键优化、复制策略、二级索引、SSTable 压缩、一致性级别、连接池配置、硬件调优、监控工具 摘要&#xff1a;本文系统解析 Apache Cassandra 性能优化的核…

作者头像 李华
网站建设 2026/3/15 22:06:41

STM32_芯片介绍

文章目录 一、STM32是什么二、STM32分类三、STM32命名规范   1、STM32   2、类型   3、子系列   4、引脚数   5、存储量   6、封装   7、工作温度 四、分配原理图引脚五、参考手册和数据手册   1、参考手册   2、数据手册 六、引脚的功能定义解读 一、STM32是…

作者头像 李华