问题及描述;
/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称;test.cpp *作者;邱凯 *完成日期;2016年5月10号 *版本号;v6.0 *问题描述; 警察和厨师(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<<" do some action"<<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; }运行结果;