作业五物件程式实作.ppt

上传人:sccc 文档编号:4928766 上传时间:2023-05-24 格式:PPT 页数:26 大小:106.55KB
返回 下载 相关 举报
作业五物件程式实作.ppt_第1页
第1页 / 共26页
作业五物件程式实作.ppt_第2页
第2页 / 共26页
作业五物件程式实作.ppt_第3页
第3页 / 共26页
作业五物件程式实作.ppt_第4页
第4页 / 共26页
作业五物件程式实作.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《作业五物件程式实作.ppt》由会员分享,可在线阅读,更多相关《作业五物件程式实作.ppt(26页珍藏版)》请在三一办公上搜索。

1、作業五_物件程式實作,創造類別:父親(Father)、母親(Mother)小孩(Child)、家庭(Family),父親(Father)類別,屬性:姓名、年齡、職業建構子的型式Father(string 姓名,int 年齡,string 職業)ex:父親叫John,年齡為45歲,職業是工程師Father father(“John”,45,”工程師”),母親(Mother)類別,屬性:姓名、年齡建構子的型式Mother(string 姓名,int 年齡)ex:母親叫Mary,年齡為42歲Mother mother(“Mary”,42),小孩(Child)類別,屬性:姓名、年齡、性別建構子的型式:

2、Child(string 姓名,int 年齡,string 性別)或是採取Child(string 姓名,int 年齡,bool 判斷性別方式)自己選擇如何去判斷性別的方式ex:小孩叫David,年齡為12歲,是男孩Child David(“David”,12,”男”)或是 Child David(“David”,12,true),家庭(Family)類別,類別成員:父親(Father)、母親(Mother)許多小孩(vector)屬性:小孩個數、男孩個數、女孩個數建構子:有父母親即可組成一個家庭Family(父親物件,母親物件)ex:根據之前造出的father,mother物件,來創造一個f

3、amily物件Family family(father,mother),家庭(Family)類別,擁有的方法:增加小孩:可以用兩種方式增加小孩重載方式void Add_Child(小孩物件)void Add_Child(名字,年齡,性別)顯示家庭背景資料:void show(),主程式範例,int main()Father father(John,45,工程師);Mother mother(Mary,42);Child David(David,12,true);Child Bill(Bill,10,true);Family family(father,mother);family.Add_Ch

4、ild(David);family.Add_Child(Bill);family.Add_Child(Helen,8,false);family.show();return 0;,創造父親和母親的物件,孩子的性別的判斷自行決定判斷的方式,顯示家庭基本資料,可以用兩種方式增加孩子,顯示家庭背景資料的格式,這個家庭除了父親,母親外,還有 3 小孩父親的名字叫做 John,年齡為 45 歲,職業為 工程師 母親的名字叫做 Mary,年齡為 42 歲,育有 2 男,1 女 第 1 位孩子的名字叫做 David,年齡為 12 歲,性別為 男性 第 2 位孩子的名字叫做 Bill,年齡為 10 歲,性別為

5、 男性 第 3 位孩子的名字叫做 Helen,年齡為 8 歲,性別為 女性,在標頭檔中儲存類別的定義,將標頭檔放在相同的目錄中,使用標頭檔的方式include“標頭檔名”,標頭檔中儲存類別的定義_以作業五為例,若將不同的類別都寫在不同的標頭檔,且標頭檔都放在同一目錄下則程式開頭需加上include“Father”include“Mother”include“Child”include“Family”,標頭檔中儲存類別的定義_以作業五為例,注意:#include#include#include using namespace std;include“Father”include“Mother”i

6、nclude“Child”include“Family”,需放在標頭檔前若是放在標頭檔後,則每個類別的標頭檔內都要加上include指令,才能使用此函式庫的程式,物件參數的傳遞,函數傳遞參數的方式有傳值、傳址、傳參考物件傳遞參數的方式建議使用“傳參考”因為使用傳值方式,需要將記憶體需要複製一樣的物件,而在複製物件的過程相當耗記憶體空間、以及花費程式執行時間,物件參數的傳遞_以作業五為例,Family(父親物件,母親物件)主程式中創造Family物件Family family(father,mother)建構子中:Family:Family(Father&_father,Mother&_moth

7、er)/程式內容,重載方式以及建構子,可以使用不同的參數來重新定義方法或建構子compiler根據傳入的參數與數目,來找尋可能匹配的方法與建構子。,重載方式以及建構子_以作業五為例,Class Familyvoid Add_Child(Child Family:Add_Child(Child&_child)/若傳入Child物件的程式做法Family:Add_Child(string c_name,int c_age,bool c_sex)/若傳入name,age,sex的程式做法,物件和指標,若宣告一個father父親物件指標,並設定初值物件指標的設定方式與一般指標變數的方法相同ex:Fat

8、her father;Father*father_ptr;father_ptr=,物件和指標,透過物件指標,存取所指向物件的資料成員與成員函數,必須利用-運算子語法物件指標名稱-成員名稱;,物件和指標_利用-運算子,若Father類別有get_Name()成員函式ex:Father father(John,45,工程師);Father*father_ptr=father_ptr-get_Name()以獲得father的名字(John),使用this指標,this指標將代表物件本身,是一個指向物件自己的指標。在程式實作上,this指標最常見的用法,為提供物件的成員函數,在被呼叫時,回傳物件本身的

9、記憶體位址。,使用this指標,若Father類別有get_Name()成員函式存取同一物件成員時,一般的程式寫法為省略thisclass Fathervoid get_Name()return name;省略this指標;經過compiler後,get_Name()函數內容原本應該為Void get_Name()retunr this-name;,使用this指標,若要寫類別的成員函數是要回傳物件本身,則利用回傳this的方式類別名稱*類別的成員函數(傳入參數)/程式內容 return this;/傳回物件本身,類別的前置宣告,若類別的宣告發生彼此呼叫的情形,就必須利用類別的前置宣告的方式在

10、程式開頭加入class 類別名稱;/類別的前置宣告,ex:若有兩個類別是 husband 與 wife,且彼此都會呼叫對方類別時。在程式開頭需加上類別的前置宣告class wife 前置宣告class husband wife my_wife;class wife husband my_husband;,若沒有前置宣告,程式run到這將認不出wife類別,物件的消滅解構子,當程式使用new指令後,程式結束需要把配置給物件的動態記憶體釋放利用解構子來處理,而解構子不需傳入參數解構子的執行,發生於物件離開其有效範圍(scope)以delete運算子釋放動態配置的物件,解構子的使用方式,類別名稱()/程式片段,動態配置物件記憶體,類別名稱*指標名稱=new 類別名稱(建構子輸入變數)當物件使用new運算子宣告,使用動態記憶體時,之後必須要適放記憶體delete 指標名稱會執行物件的 解構子,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号