【專案-警察和廚師】
(1)根據下面的類圖,定義各個類:
要求:
各個成員函式,只要輸出相關的資訊即可,暫不深究其業務功能
請為各個類增加建構函式
在實現中,可以增加需要的其他函式
自行編制main函式,完成初步的測試
[參考解答1]
#include
using namespace std;
class person
private:
int age;
string name;
};person::person(int a, string n):age(a), name(n) {}
void person::action()
;police::police(int a, string n, int l):person(a,n),level(l) {}
void police::arrest(person p)
;cook::cook(int a, string n, double s):person(a,n),salary(s) {}
void cook::getcake(int n)
(2)下面的類圖,為polic類和cook類增加了物件成員,請擴充**,完成上述各項要求
[參考解答1]
#include
using namespace std;
class person
private:
int age;
string name;
};person::person(int a, string n):age(a), name(n) {}
void person::action()
;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)
;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)
評價:[參考解答2]- 這些**是完成是題目的要求,但是,並不好。
- 每個建構函式帶上一長串的引數,難寫,難看,這本身就是質量問題。
- 這種寫法,也根本未體現物件的「封裝」——都是一串散亂的基本型別資料在工作。
- 我們希望看到jack警察的上司就是乙個人,john廚師的保衛者,就是乙個警察。
- 需要做的是,利用物件作為建構函式的引數,使結構清晰。
- 當然,這時需要增加相關的複製建構函式了。
#include
using namespace std;
class person
private:
int age;
string name;
};person::person(int a, string n):age(a), name(n) {}
void person::action()
;police::police(int a, string n, int l, person p):person(a,n),level(l),leader(p) {}
void police::arrest(person p)
;cook::cook(int a, string n, double s,police p):
person(a,n),salary(s),protector(p) {}
void cook::getcake(int n)
警察與廚師
檔名稱 test.cpp 完成日期 2016年6月15日 版本號 v1.0 問題描述 專案 警察和廚師 1 根據下面的類圖,定義各個類 要求 各個成員函式,只要輸出相關的資訊即可,暫不深究其業務功能 請為各個類增加建構函式 在實現中,可以增加需要的其他函式 自行編制main函式,完成初步的測試 輸入...
第十一周實踐專案3 警察和廚師
問題及 all right reserved.檔名稱 77.cpp 作 者 董凱琦 完成日期 2016年5月6日 版 本 號 v1.0 問題描述 完成警察類和廚師類 輸入描述 程式輸出 知識點總結 從這個有趣的程式設計中,我們基本掌握住了基類與派生類之間的關係以及實現派生類函式的方法。需要注意的是,...
第10 11周專案3 警察與廚師(3)
問題及 檔名稱 test.cpp 完成日期 2016年5月17日 版本號 v1.0 問題描述 專案 警察和廚師 1 根據下面的類圖,定義各個類 要求 各個成員函式,只要輸出相關的資訊即可,暫不深究其業務功能 請為各個類增加建構函式 在實現中,可以增加需要的其他函式 自行編制main函式,完成初步的測...