项目32-警察与厨师
来源:互联网 发布:c语言中void的例题 编辑:程序博客网 时间:2024/06/03 14:03
(1)根据下面的类图,定义各个类:
要求:
各个成员函数,只要输出相关的信息即可,暂不深究其业务功能
请为各个类增加构造函数
在实现中,可以增加需要的其他函数
运行结果:
要求:
各个成员函数,只要输出相关的信息即可,暂不深究其业务功能
请为各个类增加构造函数
在实现中,可以增加需要的其他函数
自行编制main函数,完成初步的测试
运行代码:
#include <iostream>using namespace std;class Person{public: Person(int, string); void action(); string getName() { return name; }private: int age; string name;};Person::Person(int a, string n):age(a), name(n) {}void Person::action(){ cout<<name<<" do some action"<<endl;}class Police: public Person{public: Police(int, string, int); void arrest(Person);private: int level; //级别};Police::Police(int a, string n, int l):Person(a,n),level(l) {}void Police::arrest(Person p){ cout<<" Police "<<getName()<<" arrest " <<p.getName()<<endl;}class Cook: public Person{public: Cook(int, string, double); void getCake(int);private: double salary; //薪水};Cook::Cook(int a, string n, double s):Person(a,n),salary(s) {}void Cook::getCake(int n){ cout<<" Cook "<<getName()<<" gave me " <<n<<" cakes."<<endl;}int main(){ Person tom(120,"Tom"); Police jack(30,"Jack",2); Cook john(24,"John",5000); jack.arrest(tom); john.getCake(4); return 0;}运行结果:
(2)下面的类图,为Polic类和Cook类增加了对象成员,请扩充代码,完成上述各项要求
代码(2):
#include <iostream>using namespace std;class Person{public: Person(int, string); void action(); string getName(){return name;}private: int age; string name;};Person::Person(int a, string n):age(a), name(n) {}void Person::action(){ cout<<name<<endl;}class Police: public Person{public: Police(int a, string n, int l, int la, string ln); void arrest(Person); void show();private: int level; Person leader;};Police::Police(int a, string n, int l, int la, string ln):Person(a,n),level(l),leader(la,ln) {}void Police::arrest(Person p){ cout<<"Police "<<getName()<<" arrest " <<p.getName()<<endl;}void Police::show(){ cout<<"Police "<<getName()<<", leader is " <<leader.getName()<<endl;}class Cook: public Person{public: Cook(int a, string n, double s,int pa, string pn, int pl, int pla, string pln); void getCake(int); void show();private: double salary; Police protector;};Cook::Cook(int a, string n, double s,int pa, string pn, int pl, int pla, string pln): Person(a,n),salary(s),protector(pa,pn,pl,pla,pln) {}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,43,"Jerry"); Cook john(24,"John",5000,30,"Jack",2,43,"Jerry"); jack.show(); john.show(); return 0;}
运行结果:
学习心得:每个派生类的构造函数都要继承积累构造函数中的参数,不可缺少,另外注意积累中参数的访问方式。
0 0
- 项目32-警察与厨师
- 第十周项目42-警察与厨师
- 第十一周项目三警察与厨师
- 项目-警察和厨师
- 警察与厨师
- 警察与厨师
- 警察与厨师2
- 警察与厨师
- 警察与厨师
- 警察与厨师2
- 警察与厨师
- 第十周项目四 警察与厨师(2)
- 第10周项目3-警察与厨师
- 第10周项目3-警察与厨师(2)
- 第十周项目3——警察与厨师2
- 第10、11周项目(3)-警察与厨师
- 第10、11周项目(3)-警察与厨师
- 第11周项目3-警察与厨师(2)
- POJ 2114Boatherds 树的分治
- 欢迎使用CSDN-markdown编辑器
- LRU设计算法
- rebar 制作发布版本
- Qt中文手册 之 QTableWidget
- 项目32-警察与厨师
- 119. Pascal's Triangle II
- 51nod 1024 矩阵中不重复的元素(简单粗暴)
- linux下运用opensll制作ssl证书
- PL/SQL如何调试Oracle存储过程
- Codeforces Round #353 (Div. 2) E 线段树+dp
- <JAVA学习笔记二>——设计模式之装饰者设计模式
- 利用tomcat服务器配置https双向认证、https单向认证-ssl、tls
- 【一天一道LeetCode】#58. Length of Last Word