版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1挑戰(zhàn)挑戰(zhàn)C+程式語言程式語言第第1212章章 類別的定義類別的定義2本章主題本章主題類別的宣告類別的宣告操作成員的定義與行內(nèi)函式操作成員的定義與行內(nèi)函式建構(gòu)元與解構(gòu)元建構(gòu)元與解構(gòu)元合成使用類別合成使用類別靜態(tài)的類別成員靜態(tài)的類別成員3類別的宣告 回顧結(jié)構(gòu)回顧結(jié)構(gòu)(struct)(struct)定義定義 【結(jié)構(gòu)定義範(fàn)例】 s st tr ru uc ct t Date int year; int month; int day; ; struct 為保留字 Date 為結(jié)構(gòu)的名稱 4類別的宣告【類別定義範(fàn)例】 c cl la as ss s Date p pu ub bl li ic c: Da
2、te(); void setDate(int, int, int); void printDate(int); p pr ri iv va at te e: int year; int month; int day; ; class 為保留字 Date 為類別的名稱 須以分號(hào)結(jié)束類別的定義 資料成員的定義 操作成員的定義 5類別的使用類別的使用 Date Today, *ptrDate, Holiday15; 類別變數(shù)類別變數(shù) - - 案例案例/ /物件物件【 錯(cuò) 誤 的 語 法 】 Today - year = 2001; ptrDate.year = 2001; cout year; pu
3、blicpublic與與privateprivate存取等級(jí)存取等級(jí) 不允許直接存取不允許直接存取privateprivate資料成員資料成員6操作成員的定義操作成員的定義: 定義函式的內(nèi)容 【程式範(fàn)例】 / 程式名稱: oop_12_2.cpp / 程式功能: 定義一個(gè) Date 類別,設(shè)定其變數(shù)值,並將之印出來 /printDate操作成員,用來印出資料成員的內(nèi)容 void Date:printDate(int type) /可以直接存取private資料成員 if(type=WEST) cout MNamemonth-1 day , year; if(type=EAST) cout ye
4、ar/ month / day; /setDate操作成員,用來改變資料成員的內(nèi)容 void Date:setDate(int y, int m, int d) /可以直接存取private資料成員 year = y; month = m; day = d; 7行內(nèi)函式行內(nèi)函式: 將操作成員的定義(函式的內(nèi)容)寫在類別的定義中 c cl la as ss s Date p pu ub bl li ic c: Date() year=month=day=0 ; void setDate(int y, int m, int d) year=y; month=m; day=d; ; void pri
5、ntDate(int); p pr ri iv va at te e: int year; int month; int day; ; 8行內(nèi)函式行內(nèi)函式: 將操作成員的定義(函式的內(nèi)容)寫在類別的定義之中 c cl la as ss s Date p pu ub bl li ic c: Date() year=month=day=0 ; void setDate(int y, int m, int d) year=y; month=m; day=d; ; void printDate(int); p pr ri iv va at te e: int year; int month; int
6、day; ; 9行內(nèi)函式使用inline保留字將操作成員定義成為行內(nèi)函式inline void Date:printDate(int type) /可以直接存取private資料成員 if(type=WEST) cout MNamemonth-1 day , year; if(type=EAST) cout year/ month / day; 10建構(gòu)元建構(gòu)元是與類別同名稱的成員函式,主要是用來進(jìn)行資料成員的初始值設(shè)定一個(gè)類別可以定義多個(gè)建構(gòu)元,用以提供不同的初始化方式建構(gòu)元是不允許指定函式回傳資料型態(tài)11預(yù)設(shè)引數(shù)建構(gòu)元當(dāng)呼叫建構(gòu)元時(shí),若無提供足夠的參數(shù)值,建構(gòu)元會(huì)以預(yù)設(shè)的引數(shù)值做為初始值【
7、程式範(fàn)例】 / 程式名稱: oop_12_3.cpp / 程式功能: 定義一個(gè)Date類別,以預(yù)設(shè)引數(shù)建構(gòu)元初始化資料成員 c cl la as ss s Date p pu ub bl li ic c: Date(int=0, int=0, int=0); /預(yù)設(shè)引數(shù)建構(gòu)元 void setDate(int, int, int); void printDate(int); p pr ri iv va at te e: int year; int month; int day; ; 12解構(gòu)元解構(gòu)元的名稱與建構(gòu)元相同,但名稱前面須加上 符號(hào)解構(gòu)元的作用與建構(gòu)元?jiǎng)偤孟喾?,它主要用來釋放物件所?zhàn)用
8、的記憶體空間解構(gòu)元不接受任何參數(shù),也不傳回任何值一個(gè)類別只允許定義一個(gè)解構(gòu)元13解構(gòu)元 範(fàn)例【程式範(fàn)例】 / 程式名稱: oop_12_4.cpp / 程式功能: 說明解構(gòu)元如何清除資料成員所佔(zhàn)用的記憶體 c cl la as ss s GiveMeMemory p pu ub bl li ic c: GiveMeMemory(); /建構(gòu)元 GiveMeMemory(); /解構(gòu)元 void printData(); p pr ri iv va at te e: int *memory; int mind; ; int main(void) GiveMeMemory M; /呼叫建構(gòu)元配置記
9、憶體並設(shè)定初始值 M.printDate();/印出資料成員內(nèi)容 return 0; /結(jié)束 main()之前,呼叫解構(gòu)元 14解構(gòu)元 範(fàn)例GiveMeMemory:GiveMeMemory() memory = new int10; /要 求 記 憶 體 空 間 給memory for(int i=0; i10; i+) memoryi=i+1; /設(shè) 定memory的 初 始 值 mind = 100; /設(shè) 定mind的 初 始 值 GiveMeMemory:GiveMeMemory() delete memory; /清 除memory所 佔(zhàn) 領(lǐng) 的 記 憶 體 空 間 cout “
10、nI am out!” ; 15合成使用類別在一個(gè)類別中使用其他類別作為其資料成員的一員【程式範(fàn)例】 / 程式名稱: oop_12_6.cpp / 程式功能: 定義一個(gè)MemorialDay類別,記錄紀(jì)念日的日期 #include oop_DATE_5.h /引用Date類別 #include class MemorialDay public: MemorialDay(char *, int, int, int); void list(); private: char nameMD30; /紀(jì)念日名稱 Date memorialDay; /紀(jì)念日 ; 16靜態(tài)的類別資料成員靜態(tài)(Static)
11、資料成員: 所有的類別案例共用一個(gè)資料【程式範(fàn)例】 / 程式名稱: oop_12_7.cpp / 程式功能: 定義一個(gè) MemorialDay 類別,記錄紀(jì)念日的日期 #include oop_DATE_5.h /引用 Date 類別 #include class MemorialDay public: MemorialDay(char *, int, int, int); MemorialDay(); void list(); static int numDays(void); /傳回靜態(tài)資料值 private: char nameMD30; /紀(jì)念日名稱 Date memorialDay; /紀(jì)念日 static int NumOfDays; /靜態(tài)資料成員 ; 17靜態(tài)資料成員/在主程式之前必須初始化靜態(tài)資料成員 int MemorialDay:NumOfDays = 0; int main(void) /沒有案例時(shí),仍然可以取得靜態(tài)資料成員的值 cout 總共有 MemorialDay:numDays() 個(gè)紀(jì)念日 endl; MemorialDay *Day1 = new MemorialDay(端午節(jié), 2002, 6, 15); MemorialDay MoonFestival(中秋節(jié), 2002,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 增資擴(kuò)股委托協(xié)議
- 2025版小產(chǎn)權(quán)房購房合同范本:房產(chǎn)交易糾紛調(diào)解與和解3篇
- 2025年度個(gè)人房屋交易房地產(chǎn)廣告推廣合同范本
- 2025版房地產(chǎn)銷售委托代理合同補(bǔ)充協(xié)議3篇
- 2025-2030全球MBE摻雜源行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國便攜式三維測力臺(tái)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025版?zhèn)€人信用貸款合同樣本6篇
- 2025年度鋼構(gòu)建筑綠色供應(yīng)鏈管理合同范本2篇
- 委托調(diào)查合同范本
- 2025年度個(gè)人與個(gè)人投資理財(cái)合作協(xié)議范本4篇
- 新滬科版八年級(jí)物理第三章光的世界各個(gè)章節(jié)測試試題(含答案)
- 非遺國粹川劇變臉的傳統(tǒng)文化知識(shí)了解原創(chuàng)模板
- 夜市運(yùn)營投標(biāo)方案(技術(shù)方案)
- 電接點(diǎn) 水位計(jì)工作原理及故障處理
- 國家職業(yè)大典
- 2024版房產(chǎn)代持協(xié)議書樣本
- 2024年四川省成都市成華區(qū)中考二診物理試題
- 2024年3月計(jì)算機(jī)等級(jí)考試三級(jí)數(shù)據(jù)庫技術(shù)筆試真題及答案
- 公眾號(hào)運(yùn)營實(shí)戰(zhàn)手冊
- 科研倫理與學(xué)術(shù)規(guī)范(研究生)期末試題庫及答案
- 2024中考地理必考試卷含解析
評(píng)論
0/150
提交評(píng)論