- #include <iostream>
- #include <string>
- using namespace std;
- class Person
- {
- public:
- Person(int n = 0, string nam = " "):age(n),name(nam){}
- void action(){cout << name << " " << age << endl;};
- string getName(){return name;}
- void show_person()
- {
- cout << "age:" << age << endl;
- cout << "name:" << name << endl;
- }
- private:
- int age;
- string name;
- };
- class Polic:public Person
- {
- public:
- Polic(int n = 0, string nam = " ", int lev = 0,int n1 = 0,string nam1 = " "):Person(n,nam),level(lev),leader(n1,nam1){}
- void arrest(Person &person){cout << person.getName() << " were arrested by police officer " << this->getName() << endl;}
- void show_polic()
- {
- cout << "leader:" << endl;
- leader.show_person();
- cout << "polic:" << endl;
- this->show_person();
- cout << "level" << level << endl;
- }
- private:
- int level;
- Person leader;
- };
- class Cook:public Person
- {
- public:
- Cook(int n = 0, string nam = " ", double sal = 0, int n1 = 0, string nam1 = " ", int lev = 0, int n2 = 0, string nam2 = " "):
- Person(n,nam),salary(sal),protector(n1,nam1,lev,n2,nam2){}
- string getCake(){return "ok";}
- void show_cake()
- {
- cout << "protector:" << endl;
- protector.show_polic();
- cout << "cake:" << endl;
- cout << "salary:" << salary << endl;
- }
- private:
- double salary;
- Polic protector;
- };
- int main()
- {
- Person p(20,"Jack");
- p.show_person();
- cout << endl;
- Polic po(18,"Bob",2,20,"Jack");
- po.show_polic();
- cout << endl;
- Cook c(22,"Marry",5000,18,"Bob",2,20,"Jack");
- c.show_cake();
- return 0;
- }