第十二周项目一 教师兼干部类】 共建虚基类person

本文介绍了如何使用C++编程实现一个教师兼干部类,该类从Teacher和Cadre类派生,这两个基类又都从虚基类Person派生。项目要求包括定义各个类的数据成员,并在Teacher_Cadre类中调用显示成员函数,展示职称、职务和工资。代码示例展示了类的定义和成员函数的实现,以及main函数中的实例化和调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目1 - 教师兼干部类】
分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求: 
(1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。 
可以这样定义一个Person作为虚基类: ```c++ class Person { public: virtual void printInfo() const = 0; virtual ~Person() {} }; ``` 然后我们可以分别派生出StudentTeacher,并实现各自的printInfo()函数: ```c++ class Student : virtual public Person { private: std::string name; int age; std::string school; public: Student(const std::string& name, int age, const std::string& school) : name(name), age(age), school(school) {} void printInfo() const override { std::cout << "Name: " << name << ", Age: " << age << ", School: " << school << std::endl; } }; class Teacher : virtual public Person { private: std::string name; int age; std::string department; public: Teacher(const std::string& name, int age, const std::string& department) : name(name), age(age), department(department) {} void printInfo() const override { std::cout << "Name: " << name << ", Age: " << age << ", Department: " << department << std::endl; } }; ``` 注意在派生中,我们都使用了`virtual public Person`来继承Person,这是为了避免在多重继承中产生二义性。同时我们也实现了纯虚函数`printInfo()`,这是因为Person本身没有意义,只是作为一个存在,我们只需要让它的子实现相应的函数即可。 这样,我们就可以使用以下代码来创建学生教师对象并输出信息: ```c++ int main() { Person* p1 = new Student("Alice", 18, "MIT"); Person* p2 = new Teacher("Bob", 35, "Computer Science"); p1->printInfo(); p2->printInfo(); delete p1; delete p2; return 0; } ``` 输出为: ``` Name: Alice, Age: 18, School: MIT Name: Bob, Age: 35, Department: Computer Science ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值