第10、11周项目3-警察与厨师(3)
2016-05-17 17:38
375 查看
问题及代码:
运行结果:
学习心得:
这样做简单了很多,不用重复去写一些变量,使用默认构造函数。
/* *copyright (t) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:test.cpp *作者:张晴晴 *完成日期:2016年5月17日 *版本号:v1.0 *问题描述: 【项目-警察和厨师】 (1)根据下面的类图,定义各个类: 要求: 各个成员函数,只要输出相关的信息即可,暂不深究其业务功能 请为各个类增加构造函数 在实现中,可以增加需要的其他函数 自行编制main函数,完成初步的测试 *输入描述:无 *程序输出:如图片所示 */ #include <iostream> using namespace std; class Person { public: Person(int, string); string getName(){return name;} private: int age; string name; }; Person::Person(int a, string n):age(a), name(n) {} class Police: public Person { public: Police(int a, string n,int l,Person); void arrest(Person); void show(); private: int level; //级别 Person leader; //领导 }; Police::Police(int a, string n, int l, Person p):Person(a,n),level(l),leader(p) {} void Police::arrest(Person p) { cout<<"Police "<<getName()<<" arrest " <<p.getName()<<endl; cout<<"Police "<<getName()<<" now is " <<level<<" level ."<<endl; } void Police::show() { cout<<"Police "<<getName()<<", leader is " <<leader.getName()<<endl; } class Cook: public Person { public: Cook(int a, string n, double s,Police p);//前三个厨师自己的,后三个警察的,最后两个是领导的。 void getCake(int); void show(); private: double salary; //薪水 Police protector; //厨师小店的片区警察 }; Cook::Cook(int a, string n, double s,Police p): Person(a,n),salary(s),protector(p) {} void Cook::getCake(int n) { cout<<"Cook "<<getName()<<" gave me " <<n<<" cakes."<<endl; } void Cook::show() { cout<<"Cook "<<getName()<<" is protected by Police "<<protector.getName()<<endl; } int main() { Person tom(120,"Tom"); Police jack(30,"Jack",2,tom); Cook john(24,"John",5000,jack); john.getCake(10); john.show(); jack.arrest(tom); jack.show(); return 0; }
运行结果:
学习心得:
这样做简单了很多,不用重复去写一些变量,使用默认构造函数。
相关文章推荐
- Linux那些事儿之我是Sysfs(3)设备模型上层容器
- setting
- Scrum 项目4.0&&5.0
- Gson问题汇总
- mysql:Illegal mix of collations错误
- 修改hosts文件
- [读书笔记]高性能php应用开发(1)
- 树形菜单(jquery.treeview.js)
- mysql安装实现过程
- android studio 格式化代码时注解不换行
- 二叉树遍历的应用
- ReactNative浅谈
- arm-linux驱动:初步字符设备
- Longest Palindromic Substring(medium 常考)
- 三色旗问题中的快排应用
- Linux那些事儿之我是Sysfs(2)linux设备底层模型
- 基于OpenSLL的RSA加密应用
- IOS 开发,调用打电话,发短信,打开网址
- CodeIgniter框架集成微信扫码支付SDK
- Handler 工作机制