




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 淮海工學(xué)院計(jì)算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計(jì) G計(jì)算機(jī)141第第9 9章章 怎樣使用類和對(duì)象怎樣使用類和對(duì)象9.1 利用構(gòu)造函數(shù)對(duì)類對(duì)象進(jìn)行初始化9.2 析構(gòu)函數(shù)9.3 調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)的順序9.4 對(duì)象數(shù)組9.5 對(duì)象指針9.6 共用數(shù)據(jù)的保護(hù)9.7 對(duì)象的動(dòng)態(tài)建立和釋放9.8 對(duì)象的賦值和復(fù)制9.9 靜態(tài)成員9.10 友元9.11 類模板小結(jié)練習(xí)、作業(yè)及實(shí)驗(yàn)2 淮海工學(xué)院計(jì)算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計(jì) G計(jì)算機(jī)1419.9 9.9 靜態(tài)成員靜態(tài)成員 類是對(duì)象的藍(lán)圖,類的成員有: 成員變量每個(gè)對(duì)象單獨(dú)的一份數(shù)據(jù)成員
2、 成員函數(shù)所有對(duì)象只有一份成員函數(shù)代碼 一般類的成員函數(shù)都有一個(gè)隱式的指針參數(shù)this,this指針指向?qū)ο蟊旧?,這樣通過this指針就可以訪問每個(gè)對(duì)象自己的成員變量。 但有時(shí)候?yàn)橐粋€(gè)類的所有對(duì)象提供共有的數(shù)據(jù)成員副本,比在類的每個(gè)對(duì)象中維護(hù)單獨(dú)的副本,可以更加有效合理地利用內(nèi)存并方便編程。 這是一種特殊的成員變量靜態(tài)變量。 3 淮海工學(xué)院計(jì)算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計(jì) G計(jì)算機(jī)1419.9.1 9.9.1 靜態(tài)成員變量靜態(tài)成員變量1、概念: 靜態(tài)成員變量屬于類,該類的所有對(duì)象共享一份。 (屬于類的全局變量)2、聲明: 在成員前加static標(biāo)記3、初始化:
3、 靜態(tài)成員變量只能被初始化一次,必須在類外的CPP源文件中初始化,不能放在接口文件(頭文件*.h)中。 類型 類名:變量名=初值;4、引用: 可以通過對(duì)象名或類名來引用。4 淮海工學(xué)院計(jì)算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計(jì) G計(jì)算機(jī)1419.9.1 9.9.1 靜態(tài)成員變量靜態(tài)成員變量例: CAD系統(tǒng)中點(diǎn)對(duì)象的個(gè)數(shù)(計(jì)數(shù))、及每個(gè)對(duì)象序號(hào)。1、可以考慮設(shè)置一全局變量counter(初始化為0),在構(gòu)造函數(shù)中counter+,在析構(gòu)函數(shù)中counter-。 但使用全局變量會(huì)引起數(shù)據(jù)的依賴性相關(guān)性問題(數(shù)據(jù)耦合); 全局變量容易沖突; 無法向維護(hù)人員傳達(dá)設(shè)計(jì)人員的設(shè)計(jì)思
4、路。2、在點(diǎn)類中設(shè)一counter靜態(tài)變量及一私有成員變量id。(更好的解決方案)5 淮海工學(xué)院計(jì)算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計(jì) G計(jì)算機(jī)1419.9.2 9.9.2 靜態(tài)成員函數(shù)靜態(tài)成員函數(shù)1、概念: 靜態(tài)數(shù)據(jù)成員屬于類,目的主要是為了處理類的靜態(tài)成員變量。 由于靜態(tài)成員函數(shù)邏輯上不屬于對(duì)象,所以其參數(shù)表中無默認(rèn)的this指針,所以無法用默認(rèn)方法處理某個(gè)對(duì)象非靜態(tài)成員變量,必須指明對(duì)象名。 靜態(tài)成員函數(shù)只能訪問它的參數(shù)、類的靜態(tài)成員和全局變量。2、聲明: 在成員函數(shù)前加static標(biāo)記3、引用: 可以通過對(duì)象名或類名來引用。6 淮海工學(xué)院計(jì)算機(jī)工程學(xué)院 楊世
5、通 2014-2015-1學(xué)期 *C+程序設(shè)計(jì) G計(jì)算機(jī)1419.10 9.10 友元(友元(friend)friend)1、概念: 類中的成員變量一般是私有或保護(hù)的,是被封閉起來的,不允許從外部直接訪問。封裝是一種很好的保護(hù)數(shù)據(jù)的方法,但有些時(shí)候也給數(shù)據(jù)的訪問帶來了困難和額外的開銷。 但可以對(duì)朋友提問便利的訪問,不過要嚴(yán)格控制,盡量不使用。 friend可以是函數(shù),也可以是類。 注意友元函數(shù)和友元類并不是類的成員,友元函數(shù)參數(shù)表中沒有隱藏傳遞的this指針。7 淮海工學(xué)院計(jì)算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計(jì) G計(jì)算機(jī)1419.10 9.10 友元(友元(frie
6、nd)friend) 面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)基本原則是封裝性和信息隱藏,而友元卻可以訪問其它類中的private、protected成員,這是對(duì)封裝原則的一種破壞;但是有助于數(shù)據(jù)共享,可以提高程序的的效率。 在使用友元時(shí)一定要注意它的副作用,盡量限制使用。只有在使用了友元之間可以使程序更精練,并較大速度地提高程序的效率時(shí)才使用。 數(shù)據(jù)共享與信息隱藏之間要選擇一個(gè)恰當(dāng)?shù)钠胶恻c(diǎn)。 效率和原則/規(guī)范之間的一種折衷。8 淮海工學(xué)院計(jì)算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計(jì) G計(jì)算機(jī)1419.11 9.11 類模板類模板 普通類是對(duì)象的抽象,對(duì)象是類的實(shí)例。 類模板是在這個(gè)基礎(chǔ)上
7、對(duì)普通類的又一層抽象,是抽象數(shù)據(jù)類型,一種抽象地處理問題的機(jī)制,類似于函數(shù)模板的思想,是C+的一種有力的代碼重用工具。適用于功能相同,數(shù)據(jù)類型不同,但解決問題的算法相同的場(chǎng)合。類模板是包含類型參數(shù)的類參數(shù)化的類,是一組相似類的抽象,類是類模板的實(shí)例,類模板是類的抽象。 思想:對(duì)數(shù)據(jù)類型不同的對(duì)象使用相同的算法,只需編寫一次算法代碼,在使用時(shí)再指定算法應(yīng)用指定的數(shù)據(jù)類型即可。 學(xué)習(xí)的目的: 進(jìn)一步學(xué)習(xí)抽象與重用的思想; 為正確學(xué)習(xí)和使用STL(標(biāo)準(zhǔn)模板庫)打下基礎(chǔ)(C+的高級(jí)編程); 抽象的思想,要突出的重點(diǎn)是與數(shù)據(jù)類型無關(guān)的解決問題的算法。9 淮海工學(xué)院計(jì)算機(jī)工程學(xué)院 楊世通 2014-201
8、5-1學(xué)期 *C+程序設(shè)計(jì) G計(jì)算機(jī)1419.11 9.11 類模板類模板類模板的聲明template class 類名 ;typename關(guān)鍵字也可以使用class,表示的是抽象虛擬的數(shù)據(jù)類型,還可以把要傳給模板的常量也放進(jìn)虛擬類型中。10 淮海工學(xué)院計(jì)算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計(jì) G計(jì)算機(jī)1419.11 9.11 類模板類模板成員函數(shù)的定義template class 類名:函數(shù)名(參數(shù)表)參數(shù)表中可以使用虛擬的數(shù)據(jù)類型T1、T2 注意:目前大部分C+編譯器不支持類模板的定義與實(shí)現(xiàn)相分離,即只能放在同一文件中。VC+6.0也不支持,所以使用類視圖時(shí)支持不
9、好,但編譯與執(zhí)行沒有問題。11 淮海工學(xué)院計(jì)算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計(jì) G計(jì)算機(jī)1419.11 9.11 類模板類模板模板類對(duì)象的定義template class 類名 對(duì)象名(初始值);應(yīng)用舉例: 最多含有10個(gè)元素的順序表抽象數(shù)據(jù)類型的實(shí)現(xiàn),要求可以實(shí)現(xiàn)遍歷(顯示)、插入、刪除、排序基本操作。12 淮海工學(xué)院計(jì)算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計(jì) G計(jì)算機(jī)141練習(xí)、作業(yè)及實(shí)驗(yàn)(練習(xí)、作業(yè)及實(shí)驗(yàn)(1 1)一、練習(xí)書后練習(xí) 課后有條件的同學(xué)盡量將書中本章的所有程序進(jìn)行輸入運(yùn)行,多閱讀程序,在弄明白的基礎(chǔ)上對(duì)程序進(jìn)行一定的修改,并多練習(xí)編寫程序。二、書面作業(yè)0、類的構(gòu)造函數(shù)有幾種,分別如何定義及在什么場(chǎng)合下會(huì)被調(diào)用? 1、類的實(shí)例中,成員變量和成員函數(shù)各保存幾份備份? 2、簡(jiǎn)述模板類的思想及模板類的聲明、定義與使用。 13 淮海工學(xué)院計(jì)算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計(jì) G計(jì)算機(jī)141 練習(xí)、作業(yè)及實(shí)驗(yàn)練習(xí)、作業(yè)及實(shí)驗(yàn)(2)(2)三、實(shí)驗(yàn)1、目的: (1)進(jìn)一步熟悉和掌握使用面向?qū)ο笏枷耄?(2)掌握類的靜態(tài)成員
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 籃球場(chǎng)地租賃合同協(xié)議
- 冷庫維修合同協(xié)議
- 合同額變更的補(bǔ)充協(xié)議
- 種子合同協(xié)議范本
- 解除運(yùn)輸協(xié)議合同
- 華圖協(xié)議班合同條款
- 貨物合同變更協(xié)議
- 夫妻終身協(xié)議合同
- 可轉(zhuǎn)股協(xié)議存款合同樣本
- 簡(jiǎn)易加工協(xié)議合同
- 村內(nèi)綠化方案設(shè)計(jì)
- 六年級(jí)分?jǐn)?shù)應(yīng)用題100題及答案
- GB/T 22076-2024氣動(dòng)圓柱形快換接頭
- 高清監(jiān)控系統(tǒng)報(bào)價(jià)清單
- 研究生科研第一課:快速進(jìn)行文獻(xiàn)檢索與閱讀
- T-JSSAE 001-2021 汽車混合動(dòng)力系統(tǒng) 術(shù)語
- 電動(dòng)機(jī)拆卸與裝配培訓(xùn)
- 2024年高等教育經(jīng)濟(jì)類自考-04531微觀經(jīng)濟(jì)學(xué)筆試歷年真題薈萃含答案
- 大學(xué)生創(chuàng)業(yè)計(jì)劃書在線旅游服務(wù)平臺(tái)
- 【農(nóng)產(chǎn)品網(wǎng)絡(luò)營(yíng)銷策略分析文獻(xiàn)綜述2400字】
- 2022年江蘇省南京市中考語文真題(解析版)
評(píng)論
0/150
提交評(píng)論