/* *Copyright(c) 2016, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:李德坤 *完成日期:2016年5月2日 *版本号:v1.0 * *问题描述:各个成员函数,只要输出相关的信息即可,暂不深究其业务功能 请为各个类增加构造函数 在实现中,可以增加需要的其他函数 自行编制main函数,完成初步的测试 为Polic类和Cook类增加了对象成员,请扩充代码 *输入描述:无 *输出描述:按要求输出 */ #include<iostream> using namespace std; class Person { public: Person(int pa,string pn);//Person构造函数 void action(); string getName();//得到名字 void personshow(); private: int age; string name; }; Person::Person(int pa,string pn) { age=pa; name=pn; } void Person::action()////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// { cout<<getName()<<"已经到达现场。"<<endl; } string Person::getName() { return name; } void Person::personshow() { cout<<"姓名:"<<name<<endl<<"年龄:"<<age<<endl; } class Polic:public Person { public: void arrest(Person); Polic(int policage,string policname,int policlevel,int leaderage,string leadername);//Polic构造函数 void policshow(); private: int level; Person leader; }; Polic::Polic(int policage,string policname,int policlevel,int leaderage,string leadername):Person(policage,policname),leader(leaderage,leadername) { level=policlevel; } void Polic::arrest(Person p) { cout<<getName()<<"已经把"<<p.getName()<<"逮捕。"<<endl; } void Polic::policshow() { string m; personshow(); m=getName(); cout<<m<<"的领导是:"<<endl; leader.personshow(); cout<<endl; } class Cook:public Person { public: string getCake(int ); Cook(int ca,string cn,double cs,int pta,string ptn,int ptl,int pla,string pln); void cookshow(); private: double salary; Polic protector; }; Cook::Cook(int ca,string cn,double cs,int pta,string ptn,int ptl,int pla,string pln ):Person(ca,cn),protector(pta,ptn,ptl,pla,pln) { salary=cs; } string Cook::getCake(int a) { string g; cout<<getName()<<"给"<<protector.getName()<<a<<"个蛋糕。"<<endl; return g; } void Cook::cookshow() { string m; personshow(); m=getName(); cout<<m<<"的薪水是:"<<salary<<endl; cout<<m<<"所在区域的警察是:"<<endl; protector.policshow(); } int main() { Polic s(25,"警察小李",5,50,"警察老王"); s.policshow(); Cook c(30,"厨师小刘",5000,25,"警察小李",5,50,"警察老王"); c.cookshow(); Person x(30,"小偷赵"); s.action(); s.arrest(x); c.getCake(100); return 0; }