




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1 淮海工學(xué)院計算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計 G計算機(jī)141第第9 9章章 怎樣使用類和對象怎樣使用類和對象9.1 利用構(gòu)造函數(shù)對類對象進(jìn)行初始化9.2 析構(gòu)函數(shù)9.3 調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)的順序9.4 對象數(shù)組9.5 對象指針9.6 共用數(shù)據(jù)的保護(hù)9.7 對象的動態(tài)建立和釋放9.8 對象的賦值和復(fù)制9.9 靜態(tài)成員9.10 友元9.11 類模板小結(jié)練習(xí)、作業(yè)及實(shí)驗(yàn)2 淮海工學(xué)院計算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計 G計算機(jī)1419.9 9.9 靜態(tài)成員靜態(tài)成員 類是對象的藍(lán)圖,類的成員有: 成員變量每個對象單獨(dú)的一份數(shù)據(jù)成員
2、 成員函數(shù)所有對象只有一份成員函數(shù)代碼 一般類的成員函數(shù)都有一個隱式的指針參數(shù)this,this指針指向?qū)ο蟊旧恚@樣通過this指針就可以訪問每個對象自己的成員變量。 但有時候?yàn)橐粋€類的所有對象提供共有的數(shù)據(jù)成員副本,比在類的每個對象中維護(hù)單獨(dú)的副本,可以更加有效合理地利用內(nèi)存并方便編程。 這是一種特殊的成員變量靜態(tài)變量。 3 淮海工學(xué)院計算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計 G計算機(jī)1419.9.1 9.9.1 靜態(tài)成員變量靜態(tài)成員變量1、概念: 靜態(tài)成員變量屬于類,該類的所有對象共享一份。 (屬于類的全局變量)2、聲明: 在成員前加static標(biāo)記3、初始化:
3、 靜態(tài)成員變量只能被初始化一次,必須在類外的CPP源文件中初始化,不能放在接口文件(頭文件*.h)中。 類型 類名:變量名=初值;4、引用: 可以通過對象名或類名來引用。4 淮海工學(xué)院計算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計 G計算機(jī)1419.9.1 9.9.1 靜態(tài)成員變量靜態(tài)成員變量例: CAD系統(tǒng)中點(diǎn)對象的個數(shù)(計數(shù))、及每個對象序號。1、可以考慮設(shè)置一全局變量counter(初始化為0),在構(gòu)造函數(shù)中counter+,在析構(gòu)函數(shù)中counter-。 但使用全局變量會引起數(shù)據(jù)的依賴性相關(guān)性問題(數(shù)據(jù)耦合); 全局變量容易沖突; 無法向維護(hù)人員傳達(dá)設(shè)計人員的設(shè)計思
4、路。2、在點(diǎn)類中設(shè)一counter靜態(tài)變量及一私有成員變量id。(更好的解決方案)5 淮海工學(xué)院計算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計 G計算機(jī)1419.9.2 9.9.2 靜態(tài)成員函數(shù)靜態(tài)成員函數(shù)1、概念: 靜態(tài)數(shù)據(jù)成員屬于類,目的主要是為了處理類的靜態(tài)成員變量。 由于靜態(tài)成員函數(shù)邏輯上不屬于對象,所以其參數(shù)表中無默認(rèn)的this指針,所以無法用默認(rèn)方法處理某個對象非靜態(tài)成員變量,必須指明對象名。 靜態(tài)成員函數(shù)只能訪問它的參數(shù)、類的靜態(tài)成員和全局變量。2、聲明: 在成員函數(shù)前加static標(biāo)記3、引用: 可以通過對象名或類名來引用。6 淮海工學(xué)院計算機(jī)工程學(xué)院 楊世
5、通 2014-2015-1學(xué)期 *C+程序設(shè)計 G計算機(jī)1419.10 9.10 友元(友元(friend)friend)1、概念: 類中的成員變量一般是私有或保護(hù)的,是被封閉起來的,不允許從外部直接訪問。封裝是一種很好的保護(hù)數(shù)據(jù)的方法,但有些時候也給數(shù)據(jù)的訪問帶來了困難和額外的開銷。 但可以對朋友提問便利的訪問,不過要嚴(yán)格控制,盡量不使用。 friend可以是函數(shù),也可以是類。 注意友元函數(shù)和友元類并不是類的成員,友元函數(shù)參數(shù)表中沒有隱藏傳遞的this指針。7 淮海工學(xué)院計算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計 G計算機(jī)1419.10 9.10 友元(友元(frie
6、nd)friend) 面向?qū)ο蟪绦蛟O(shè)計的一個基本原則是封裝性和信息隱藏,而友元卻可以訪問其它類中的private、protected成員,這是對封裝原則的一種破壞;但是有助于數(shù)據(jù)共享,可以提高程序的的效率。 在使用友元時一定要注意它的副作用,盡量限制使用。只有在使用了友元之間可以使程序更精練,并較大速度地提高程序的效率時才使用。 數(shù)據(jù)共享與信息隱藏之間要選擇一個恰當(dāng)?shù)钠胶恻c(diǎn)。 效率和原則/規(guī)范之間的一種折衷。8 淮海工學(xué)院計算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計 G計算機(jī)1419.11 9.11 類模板類模板 普通類是對象的抽象,對象是類的實(shí)例。 類模板是在這個基礎(chǔ)上
7、對普通類的又一層抽象,是抽象數(shù)據(jù)類型,一種抽象地處理問題的機(jī)制,類似于函數(shù)模板的思想,是C+的一種有力的代碼重用工具。適用于功能相同,數(shù)據(jù)類型不同,但解決問題的算法相同的場合。類模板是包含類型參數(shù)的類參數(shù)化的類,是一組相似類的抽象,類是類模板的實(shí)例,類模板是類的抽象。 思想:對數(shù)據(jù)類型不同的對象使用相同的算法,只需編寫一次算法代碼,在使用時再指定算法應(yīng)用指定的數(shù)據(jù)類型即可。 學(xué)習(xí)的目的: 進(jìn)一步學(xué)習(xí)抽象與重用的思想; 為正確學(xué)習(xí)和使用STL(標(biāo)準(zhǔn)模板庫)打下基礎(chǔ)(C+的高級編程); 抽象的思想,要突出的重點(diǎn)是與數(shù)據(jù)類型無關(guān)的解決問題的算法。9 淮海工學(xué)院計算機(jī)工程學(xué)院 楊世通 2014-201
8、5-1學(xué)期 *C+程序設(shè)計 G計算機(jī)1419.11 9.11 類模板類模板類模板的聲明template class 類名 ;typename關(guān)鍵字也可以使用class,表示的是抽象虛擬的數(shù)據(jù)類型,還可以把要傳給模板的常量也放進(jìn)虛擬類型中。10 淮海工學(xué)院計算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計 G計算機(jī)1419.11 9.11 類模板類模板成員函數(shù)的定義template class 類名:函數(shù)名(參數(shù)表)參數(shù)表中可以使用虛擬的數(shù)據(jù)類型T1、T2 注意:目前大部分C+編譯器不支持類模板的定義與實(shí)現(xiàn)相分離,即只能放在同一文件中。VC+6.0也不支持,所以使用類視圖時支持不
9、好,但編譯與執(zhí)行沒有問題。11 淮海工學(xué)院計算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計 G計算機(jī)1419.11 9.11 類模板類模板模板類對象的定義template class 類名 對象名(初始值);應(yīng)用舉例: 最多含有10個元素的順序表抽象數(shù)據(jù)類型的實(shí)現(xiàn),要求可以實(shí)現(xiàn)遍歷(顯示)、插入、刪除、排序基本操作。12 淮海工學(xué)院計算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計 G計算機(jī)141練習(xí)、作業(yè)及實(shí)驗(yàn)(練習(xí)、作業(yè)及實(shí)驗(yàn)(1 1)一、練習(xí)書后練習(xí) 課后有條件的同學(xué)盡量將書中本章的所有程序進(jìn)行輸入運(yùn)行,多閱讀程序,在弄明白的基礎(chǔ)上對程序進(jìn)行一定的修改,并多練習(xí)編寫程序。二、書面作業(yè)0、類的構(gòu)造函數(shù)有幾種,分別如何定義及在什么場合下會被調(diào)用? 1、類的實(shí)例中,成員變量和成員函數(shù)各保存幾份備份? 2、簡述模板類的思想及模板類的聲明、定義與使用。 13 淮海工學(xué)院計算機(jī)工程學(xué)院 楊世通 2014-2015-1學(xué)期 *C+程序設(shè)計 G計算機(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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省達(dá)州開江縣聯(lián)考2025屆第二學(xué)期期末初三質(zhì)量檢測試題化學(xué)試題含解析
- 商丘市重點(diǎn)中學(xué)2024-2025學(xué)年高三第五次模擬考試(物理試題文)試題含解析
- 無錫太湖學(xué)院《語言研究項目》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東濟(jì)南市歷下區(qū)2024-2025學(xué)年初三下學(xué)期大聯(lián)考(一)英語試題含答案
- 玉林師范學(xué)院《生物化學(xué)下》2023-2024學(xué)年第二學(xué)期期末試卷
- 物業(yè)細(xì)節(jié)決定成敗培訓(xùn)
- 離心泵結(jié)構(gòu)培訓(xùn)
- 2025年集裝箱水泥運(yùn)輸合同模板
- 2025屋頂廣告牌建設(shè)合同
- 2025關(guān)于貨車租賃合同
- Q∕SY 126-2014 油田水處理用緩蝕阻垢劑技術(shù)規(guī)范
- 環(huán)保管理制度(適用于軟件企業(yè))
- 全國青少年機(jī)器人技術(shù)等價考試三級全套課件
- 適老化改造培訓(xùn)課件(PPT 31頁)
- DB 33-T 1015-2021居住建筑節(jié)能設(shè)計標(biāo)準(zhǔn)(高清正版)
- 鋼結(jié)構(gòu)門式剛架廠房設(shè)計土木工程畢業(yè)設(shè)計
- 幼兒園兒歌100首
- 光伏并網(wǎng)逆變器調(diào)試報告正式版
- 市政道路大中修工程管理指引
- SF_T 0097-2021 醫(yī)療損害司法鑒定指南_(高清版)
- 易學(xué)書籍大全291本
評論
0/150
提交評論