第十一週上機實踐專案——專案3-警察和廚師-(2)
阿新 • • 發佈:2019-02-02
/*
*Copyright (c)2016,煙臺大學計算機與控制工程學院
*All rights reserved.
*檔名稱:main.cpp
*作 者:郭永恆
*完成日期:2016年5月3日
*版 本 號:v1.0
*
*問題描述:根據類圖,定義各個類,並測試,在問題(1)的基礎上擴充
*/
類:
測試函式:#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;
}
執行結果: