/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:郭辉 *完成时间:2016年5月10日 *版 本 号:v1.0 * *问题描述:项目-警察和厨师为Polic类和Cook类增加了对象成员,请扩充代码。 *输入描述:无。 *程序输出:信息。 */ #include<iostream> #include <string> 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 na) { age=a; name=na; } void Person::action() { cout<<name<<" do some action"<<endl; } class Police: public Person { public: Police(int, string, int,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 a) { cout<<" Police "<<getName()<<" arrest " <<a.getName()<<endl; }*/ void Police::show() { cout<<"Police "<<getName()<<", leader is " <<leader.getName()<<endl; } class Cook: public Person { public: Cook(int, string, double,Police); //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); jack.show(); john.show(); return 0; }
运行结果:
<img src="http://img.blog.csdn.net/20160510212208468" alt="" />