• C++走向远洋——45(*和厨师、UML)


    */
     * Copyright (c) 2016,烟台大学计算机与控制工程学院
     * All rights reserved.
     * 文件名:text.cpp
     * 作者:常轩
     * 微信公众号:Worldhello
     * 完成日期:2016年5月8日
     * 版本号:V1.0
     * 问题描述:根据类图,写出程序
     * 程序输入:无
     * 程序输出:见运行结果
     */
    #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, string, int);
        void arrest(Person);
    private:
        int level; //级别
    };
    Police::Police(int a, string n, int l):Person(a,n),level(l) {}
    void Police::arrest(Person p)
    {
        cout<<" Police "<<getName()<<" arrest " <<p.getName()<<endl;
    }
    class Cook: public Person
    {
    public:
        Cook(int, string, double);
        void getCake(int);
    private:
        double salary; //薪水
    };
    Cook::Cook(int a, string n, double s):Person(a,n),salary(s) {}
    void Cook::getCake(int n)
    {
        cout<<" Cook "<<getName()<<" gave me " <<n<<" cakes."<<endl;
    }
    
    int main()
    {
        Person tom(110,"li");
        Police jack(20,"Yang",2);
        Cook john(22,"Sun",4000);
        jack.arrest(li);
        john.getCake(4);
        return 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;
    }


  • 相关阅读:
    使用T4为数据库自动生成实体类
    asp.net 下OnClientClick的妙用
    使用缓存的9大误区(上)
    使用缓存的9大误区(下)
    毕业后的五年拉开大家差距的原因在哪里
    mysql字符集
    redhat网络基础配置
    mysql远程连接问题
    Hibernate hql语句修改部分字段
    JQuery使用方法总结
  • 原文地址:https://www.cnblogs.com/chxuan/p/8232227.html
Copyright © 2020-2023  润新知