第十二周阅读程序(7):多重继承
来源:互联网 发布:apache-ant-zip.jar 编辑:程序博客网 时间:2024/06/06 05:42
代码:
#include <iostream>#include <cstring>using namespace std;class Person{ char* name; // 姓名 int age; // 年龄public: Person() {} void setname(char na[]) { name=new char[strlen(na)+1]; strcpy(name,na); } void setage(int a) { age=a; } char* getname() { return name; } int getage() { return age; }};class Leader: virtual public Person{ char *job; // 职务 char *dep; // 部门public: Leader() { } void setjob(char jb[]) { job=new char[strlen(jb)+1]; strcpy (job, jb); } void setdep(char dp[]) { dep=new char[strlen(dp)+1] ; strcpy (dep, dp); } char *getjob() { return job; } char *getdep() { return dep; }};class Engineer: virtual public Person{ char *major; // 专业 char *prof; // 职称public: Engineer () { } void setmajor(char maj []) { major=new char[strlen(maj)+1]; strcpy (major,maj); } void setprof(char pf[]) { prof=new char[strlen(pf)+1]; strcpy (prof, pf); } char*getmajor() { return major; } char*getprof() { return prof; }};class chairman: public Leader,public Engineer { } ;int main(){ chairman c; c.setname("张三"); c.setage(42); c.setjob("处长"); c.setdep("技术处"); c.setmajor("轮机设计"); c.setprof("高级工程师"); cout <<c.getname() << "," <<c.getage()<<" 岁,担任" <<c.getdep() <<c.getjob() <<endl; cout <<c.getprof() << ",从事" << c.getmajor()<< "专业" << "。 " << endl; return 0;}
运行结果:
学习心得:
继承是纵向的,组合是横向的,通过继承建立了派生类与基类的关系,通过组合建立了成员类和组合类的关系。
0 0
- 第十二周阅读程序(7):多重继承
- 第十二周阅读程序(1):多重继承
- 第十二周阅读程序(2):多重继承
- 第十二周阅读程序(3):多重继承
- 第十二周阅读程序(4):多重继承
- 第十二周阅读程序(5):多重继承
- 第十二周阅读程序(6):多重继承
- 第十二周 多重继承-阅读程序(3)
- 第十二周 阅读程序(1)多重继承
- 第十二周阅读程序1:多重继承-域运算符
- 第十二周阅读程序2:多重继承的构造函数
- 第十二周 阅读程序 多重继承 理解多重继承中构造函数
- 第十二周程序填空-多重继承
- 第十二周 程序填空:多重继承
- 第十二周 程序填空-多重继承
- 第十二周 阅读项目 多重继承中数据关系
- 第十二周 阅读程序 虚基类 中的继承
- 第十二周 阅读项目 (4)虚基类多重继承数据理解
- 注册表
- js 基础总结
- Android 碎片Fragment之(生命周期事件处理过程)
- 生成@3x图片对应的@2x和@1x版本--RTImageAssets
- 文章标题
- 第十二周阅读程序(7):多重继承
- 第十一周项目0:是春哥啊
- SessionFactory在Hibernate中的作用
- Greenplum数据库扩容实务(上)-准备工作
- NAT技术
- 213House Robber II
- pthread
- MVVM架构~Knockoutjs系列之验证机制的引入
- linux常用命令总结