怎樣使用類和對象圖文_第1頁
怎樣使用類和對象圖文_第2頁
怎樣使用類和對象圖文_第3頁
怎樣使用類和對象圖文_第4頁
怎樣使用類和對象圖文_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論