第十二周程序填空-多重继承
2015-05-21 13:23
381 查看
/* *Copyright (c) 2014, 烟台大学计算机学院 *All rights reserved. *文件名称:week12-blank.cpp *作者:高赞 *完成日期:2015年 5 月 21 日 *版本号:v1.0 * *问题描述:完成程序,并使程序的输出为: * 张三,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]; // ( 1) strcpy(name,na); } void setage(int a) { age=a; } char* getname() { return name; } int getage() { return age; } }; class Leader: virtual public Person // ( 2) { char *job; // 职务 char *dep; // 部门 public: Leader() { } void setjob(char jb[]) { job=new char[strlen(jb)+1]; // ( 3) strcpy (job, jb); } void setdep(char dp[]) { dep=new char[strlen(dp)+1]; // ( 4) strcpy (dep, dp); } char *getjob() { return job; } char *getdep() { return dep; } }; class Engineer: virtual public Person // ( 5) { char *major; // 专业 char *prof; // 职称 public: Engineer () { } void setmajor(char maj []) { major=new char[strlen(maj)+1]; // ( 6) strcpy (major,maj); } void setprof(char pf[]) { prof=new char[strlen(pf)+1]; // ( 7) strcpy (prof, pf); } char*getmajor() { return major; } char*getprof() { return prof; } }; class chairman: public Leader,public Engineer { } ; // ( 8) 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; }
若基类Person类前不加virtual会提示产生歧义错误(ambiguous).
相关文章推荐
- 第十二周 程序填空-多重继承
- 第十二周 程序填空:多重继承
- 第十二周程序填空
- 第12周 程序填空-多重继承
- 第十二周阅读程序(1):多重继承
- 第十二周:程序填空
- 第12周 《C++语言基础》程序填空——多重继承
- 第十二周阅读程序(2):多重继承
- 第十二周阅读程序(3):多重继承
- 第十二周阅读程序(4):多重继承
- 第10周-任务1-程序填空:直线类继承点类
- 2015年大一下第11周项目0-多重继承(程序填空)
- 第10周-任务1-程序填空:直线类继承点类
- 第十二周阅读程序(5):多重继承
- 第十二周阅读程序(6):多重继承
- 第十二周 阅读程序(1)多重继承
- 第十二周阅读程序(7):多重继承
- 第十二周 多重继承-阅读程序(3)
- 第十二周阅读程序2:多重继承的构造函数
- 第十二周程序填空