- *Copyright(c)2016,烟台大学计算机与控制工程学院
- *All rights reserved
- *文件名称:123.cpp
- *作 者:隋宗涛
- *完成日期:2016年5月10日
- *版 本 号:v1.0
- *
- *问题描述:根据类图,为Police类和Cook类增加了对象成员,请扩充代码,并完成测试。
- */
- #include <iostream>
- using namespace std;
- class Person
- {
- public:
- Person(int a, string n):age(a),name(n){};
- void action();
- string getName()
- {
- return name;
- }
- private:
- int age;
- string name;
- };
- void Person::action()
- {
- cout<<" "<<name<<" does a action"<<endl;
- }
- class Police: public Person
- {
- public:
- Police(int a, string n, int l, Person p);
- void arrest(Person);
- void show();
- private:
- int level; //级别
- Person leader; //领导
- };
- Police::Police(int a, string n, int l, Person lea):Person(a,n),level(l),leader(lea) {}
- 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,Police pr);
- void getCake(int,Person);
- void show();
- private:
- double salary; //薪水
- Police protector; //厨师小店的片区警察
- };
- Cook::Cook(int a, string n, double s,Police pr):Person(a,n),salary(s),protector(pr) {}
- void Cook::getCake(int n,Person p)
- {
- cout<<"Cook "<<getName()<<" gave " <<p.getName()<<" "<<n<<" cakes."<<endl;
- }
- void Cook::show()
- {
- cout<<"Cook "<<getName()<<" is protected by "<<protector.getName()<<endl;
- }
- int main()
- {
- Person Jason(43,"Jason");
- Police King(30,"King",2,Jason);
- Cook Bob(24,"Bob",5000,King);
- King.show();
- Bob.show();
- Bob.getCake(5,Jason);
- return 0;
- }
- 运行结果:
<pre name="code" class="cpp">/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作 者:王蕊 *完成日期:2016年5月7日 *版 本 号:v1.0 * *问题描述:根据类图,为Police类和Cook类增加了对象成员,请扩充代码,并完成测试。 */ #include <iostream> using namespace std; class Person { public: Person(int a, string n):age(a),name(n){}; void action(); string getName() { return name; } private: int age; string name; }; void Person::action() { cout<<" "<<name<<" does a action"<<endl; } class Police: public Person { public: Police(int a, string n, int l, Person p); void arrest(Person); void show(); private: int level; //级别 Person leader; //领导 }; Police::Police(int a, string n, int l, Person lea):Person(a,n),level(l),leader(lea) {} 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,Police pr); void getCake(int,Person); void show(); private: double salary; //薪水 Police protector; //厨师小店的片区警察 }; Cook::Cook(int a, string n, double s,Police pr):Person(a,n),salary(s),protector(pr) {} void Cook::getCake(int n,Person p) { cout<<"Cook "<<getName()<<" gave " <<p.getName()<<" "<<n<<" cakes."<<endl; } void Cook::show() { cout<<"Cook "<<getName()<<" is protected by "<<protector.getName()<<endl; } int main() { Person Jason(43,"Jason"); Police King(30,"King",2,Jason); Cook Bob(24,"Bob",5000,King); King.show(); Bob.show(); Bob.getCake(5,Jason); return 0; } 运行结果: