您的位置:首页 > 编程语言

编程小练习

2016-04-28 08:38 393 查看
/*【项目-警察和厨师】

(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 a, string n, int l, 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 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 p);

    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 jerry(43,"Jerry");

    Police jack(30,"Jack",2,jerry);

    Cook john(24,"John",5000,jack);

    jack.show();

    john.show();

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: