![c++_總復習.ppt_第1頁](http://file1.renrendoc.com/fileroot2/2020-1/6/c7c1f650-b530-4e16-906c-fd1eb31129b2/c7c1f650-b530-4e16-906c-fd1eb31129b21.gif)
![c++_總復習.ppt_第2頁](http://file1.renrendoc.com/fileroot2/2020-1/6/c7c1f650-b530-4e16-906c-fd1eb31129b2/c7c1f650-b530-4e16-906c-fd1eb31129b22.gif)
![c++_總復習.ppt_第3頁](http://file1.renrendoc.com/fileroot2/2020-1/6/c7c1f650-b530-4e16-906c-fd1eb31129b2/c7c1f650-b530-4e16-906c-fd1eb31129b23.gif)
![c++_總復習.ppt_第4頁](http://file1.renrendoc.com/fileroot2/2020-1/6/c7c1f650-b530-4e16-906c-fd1eb31129b2/c7c1f650-b530-4e16-906c-fd1eb31129b24.gif)
![c++_總復習.ppt_第5頁](http://file1.renrendoc.com/fileroot2/2020-1/6/c7c1f650-b530-4e16-906c-fd1eb31129b2/c7c1f650-b530-4e16-906c-fd1eb31129b25.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、面向?qū)ο蟪绦蛟O(shè)計,總復習,面向?qū)ο蠹夹g(shù)(OO)引言,1、近年來,在計算機軟件業(yè),面向?qū)ο蟮某绦蛟O(shè)計思想已經(jīng)被越來越多的軟件設(shè)計人員接受。 2、是一種先進、新穎的計算機程序設(shè)計方法。 3、該方法更接近人的思維活動,因此很大程度地提高了程序設(shè)計師的編程能力,減少了軟件維護的開銷。 4、面向?qū)ο蠹夹g(shù)主要通過增加軟件的可擴充性和可重用性來提高程序員的編程能力。 5、類屬-程序設(shè)計方法學,面向過程與面向?qū)ο蟊容^-面向過程,面向過程的程序設(shè)計思想核心功能分解 面向過程解決實際問題的過程: 1問題分解為若干個功能模塊 2、根據(jù)功能模塊設(shè)計一系列用于存儲數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu) 3、編寫一些過程(或函數(shù))對這些數(shù)據(jù)操作
2、 缺陷 數(shù)據(jù)和操作分離,給軟件維護造成沉重的負擔,因為一旦數(shù)據(jù)結(jié)構(gòu)變化,整個操作可能需要重寫,面向過程與面向?qū)ο蟊容^-面向?qū)ο?將數(shù)據(jù)與對數(shù)據(jù)的操作封裝起來, 用類和對象來支持面向?qū)ο蠹夹g(shù) 程序中一切操作都是通過對象發(fā)送消息來實現(xiàn)的 最大優(yōu)點:軟件復用(重用),基本數(shù)據(jù)類型,關(guān)鍵字,保留字 ANSI標準 基本類型 整型:int 字符型 char 浮點型 float double 空值 void 字長 sizeof函數(shù) 功能:可以輸出數(shù)據(jù)類型字長,常量,標識符 以字母開頭的一串符號 常量:值不能改變 格式: 1)整型常量 十進制、八進制(00-7)、十六進制(0 x0-F) 2)浮點常量 3)字
3、符常量:ASCII碼值 4)字符串常量 5)符號常量const 類型 符號名=值,變量,變量:值可以改變 格式: 類型 變量名 使用方法 1)類型 變量名1,變量名2. 2)類型變量名1 = value1,變量名2. 3)類型變量名1 (value1),變量名2.,運算符及優(yōu)先級,算術(shù)運算符 +,-,*,/,%(取模),+,- 關(guān)系運算符 ,=,(空出位補0),運算符及優(yōu)先級,賦值運算符 +=,-=,. 其他運算符 a ? b :c a為真執(zhí)行b否則執(zhí)行c 強制類型轉(zhuǎn)換:() 或: int nNum=1,2,3,4; 數(shù)組名是常量,數(shù)組類型,二維數(shù)組 int nArray23=2,4,100,
4、101,102; 比較nArray 23 =2,4,100,101,102 字符數(shù)組 char str3=a,b,e,D; 或 char str= a,b,e,D; 對比: char str=“abeD”;(5個空間),語句,1、空語句: “;” 2、if,ifelse 可以嵌套 if() else ,語句體,選擇(開關(guān))語句,switch(m) case m1: break; case m2: break; default: break; *注意:每個case結(jié)束,要有break,若沒有會直接進入下一個case語句,循環(huán)語句,1、 for(初始值;判別結(jié)束;遞增) ,2 while() ,3
5、、 do while(),可以嵌套,Break與continue,break 開關(guān)語句中,其功能是退出開關(guān)語句 循環(huán)體中,則退出該循環(huán) Continue 用在循環(huán)體中,結(jié)束該次循環(huán),進行下一個循環(huán),結(jié)構(gòu)及其應用,格式: struct 結(jié)構(gòu)名 類型 變量名; 類型 變量名; 類型 變量名; ; 使用方法: 結(jié)構(gòu)名 結(jié)構(gòu)實例;,指針,指針的定義與初始化 存放另一個變量地址的變量 格式:類型* 指針名 指針的賦值與使用 int i,j; int *pi= 初始化問題,指針及其應用,指針的數(shù)據(jù)類型 1: void 指針 2: 空(null)指針值 3: 指針字長: 4個字節(jié) 4:+,-優(yōu)先級大于*,指
6、針及其應用,const與指針 1、指向常量的指針:指針指向的值不能變 格式:const int *p =val 2、指向指針的常量:指針不能改變 格式:int* const p = val,指針及其應用,動態(tài)內(nèi)存申請與釋放(重難點) New int *p = new int(5); /初始化 int *p = new int5; delete delete p; delete p; 例:學生記錄中使用new,delete,指針與數(shù)組,一維數(shù)組指針表示 int a5; *(a+2), a2; 二維數(shù)組指針表示 int a23; a23: (*(a+2)+3),(*(a+2)3, *(a2+3),
7、 三維數(shù)組指針表示 類似二維,引用,預處理語句,1、#開始,獨占一行; 2、程序編譯之前被執(zhí)行 3、三種預處理功能的語句 #include 文件包含語句:區(qū)分,” 條件編譯(忽略) #ifdef.#else.#endif; #ifndef#else#endif; 宏定義:#define 區(qū)別#define 與 const const有類型,且可以定義一個局部變量;#define無類型,其生存周期從開始定義到#undef取消 const是一條語句;#define是預處理語句,無;結(jié)尾,函數(shù)的定義和聲明,無參函數(shù)的定義 類型標識符 函數(shù)名() 聲明部分語句 有參函數(shù)的定義 類型標識符 函數(shù)名(形式
8、參數(shù)表列) 聲明部分語句 ,函數(shù)返回值,void 函數(shù)名() 無返回值 類型 函數(shù)名() 有返回值 Return 返回值,函數(shù)參數(shù),形式參數(shù): 在定義函數(shù)時函數(shù)名后面的括號中的變量稱為形式參數(shù),簡稱形參。 實際參數(shù) 在調(diào)用函數(shù)時,函數(shù)名后面括號中的表達式稱為實際參數(shù),簡稱實參。 缺省參數(shù) 最后續(xù)參數(shù)設(shè)定默認值,不能間隔參數(shù)設(shè)定 函數(shù)參數(shù)傳遞方式 傳值、傳地址、引用,內(nèi)聯(lián)函數(shù),函數(shù)鏈接的方式: 地址轉(zhuǎn)換,要保存上下文信息,開銷大 代碼嵌入,但程序體積急劇增大 目的: 主要解決程序中函數(shù)調(diào)用的效率問題 使用場合 代碼量不大,但又頻繁調(diào)用 聲明格式 inline 類型 函數(shù)名(參數(shù)),函數(shù)重載,一個
9、函數(shù)對應多個函數(shù)的實現(xiàn),函數(shù)重載要求編譯器能唯一的確定調(diào)用一個函數(shù)時應執(zhí)行那個函數(shù)代碼 確定函數(shù)實現(xiàn)時,要求從函數(shù)參數(shù)的個數(shù)和類型上來區(qū)分。 僅返回值不同的函數(shù),不屬于函數(shù)重載,編譯時會出錯,什么是類,類是復雜的數(shù)據(jù)類型, 它將不同類型的數(shù)據(jù)和與這些數(shù)據(jù)相關(guān)的操作封裝在一起。因此類具有更高的抽象性。類中數(shù)據(jù)具有隱藏性,類還具有封裝性。 描述一類事物 類的內(nèi)容: 數(shù)據(jù) :稱為數(shù)據(jù)成員 對數(shù)據(jù)的操作 :稱為成員函數(shù),類的定義格式,class public: private: ; ,訪問控制屬性 Public,private,protected 可有多個,且無順序,類,訪問控制符 public:為公
10、有屬性,private:為私有屬性; 對象的使用:普通對象、指針對象 構(gòu)造函數(shù) 缺省、一般、拷貝構(gòu)造函數(shù) 對象聲明時自動調(diào)用 析構(gòu)函數(shù) 對象銷毀時被調(diào)用,成員函數(shù)的特性,內(nèi)聯(lián)函數(shù)和外聯(lián)函數(shù) Class類名 類型 f(參數(shù)); inline 類型 類名:f(參數(shù)) 重載性 缺省參數(shù):其條件和一般函數(shù)的缺省參數(shù)的條件一樣,靜態(tài)數(shù)據(jù)成員,定義和聲明時前面加static 初始化: 數(shù)據(jù)類型 :靜態(tài)數(shù)據(jù)成員=值 使用方式: 類名:靜態(tài)成員名 注意: 初始化在類體外,前面不加static 初始化不加訪問權(quán)限控制符 初始化時前面加類作用域符,屬于類而不屬于對象 必須進行初始化,靜態(tài)成員函數(shù),屬于類,不屬于某
11、個對象 靜態(tài)成員函數(shù)不能直接引用非靜態(tài)成員,可以引用靜態(tài)成員,如果要引用非靜態(tài)成員,可以通過對象 聲明: Static 返回類型 函數(shù)名(參數(shù)) 實現(xiàn): 返回類型 函數(shù)名(參數(shù)) 使用: 類名:函數(shù)名(參數(shù)),基類和派生類,通過繼承機制,可以利用已有的數(shù)據(jù)類型來定義新的數(shù)據(jù)類型。 所定義的新的數(shù)據(jù)類型不僅擁有新定義的成員,而且還同時擁有舊的成員。 基類 已存在的用來派生新類的類,又稱為父類。 派生類 已存在的類派生出的新類,又稱為子類。,繼承形式,繼承有抽象級別,派生類的定義方式,單繼承的定義格式: class: ; 有如下三類: public 表示公有繼承 private 表示私有繼承 pr
12、otected 表示保護繼承 成員的可見性,多繼承,多繼承的構(gòu)造函數(shù) ():(參數(shù)表1), (參數(shù)表2).,(參數(shù)表2), 二義性問題 由于繼承類中成員有重名的問題,所以,繼承時候,會產(chǎn)生二義性問題,注意避免這種問題,解決方法:虛基類。,二義性,繼承成員的不唯一性,二義性的解決方法,問題1的解決方法 使用相同函數(shù)時用類作用域符限定 C c; c.A:F() 推薦重新定義同名函數(shù),在實現(xiàn)時根據(jù)條件使用哪個類的函數(shù) CF 問題2的解決方法 可以采用上述方法“就近”解決 用虛基類解決,多態(tài)性和虛函數(shù),多態(tài)性 指發(fā)出同樣的消息被不同類型的對象接收時導致的行為完全不同。 函數(shù)的調(diào)用:一個函數(shù)對應不同的實
13、現(xiàn) 多態(tài)性的形式 函數(shù)重載和運算符重載。 虛函數(shù)。,重載,函數(shù)重載 運算符重載 形式 重載為成員函數(shù) 重載為友元 重載格式: 類型 operator 運算符(參數(shù)),靜態(tài)聯(lián)編和動態(tài)聯(lián)編,靜態(tài)聯(lián)編 指聯(lián)編工作出現(xiàn)在編譯連接階段,又稱為早期聯(lián)編。 在編譯時進行的聯(lián)編又稱靜態(tài)束定。在編譯時就解決了程序中的操作調(diào)用與執(zhí)行該操作代碼間的關(guān)系。確定這種關(guān)系成為束定。 動態(tài)聯(lián)編 指聯(lián)編工作出現(xiàn)在運行階段,又稱為晚期聯(lián)編。 在運行時才解決了程序中的操作調(diào)用與執(zhí)行該操作代碼間的關(guān)系。,虛函數(shù),格式: virtual (參數(shù)表) 一個函數(shù)說明為虛函數(shù),意味著該成員函數(shù)在派生類中可能有不同的實現(xiàn)。 虛函數(shù)是動態(tài)聯(lián)編
14、的基礎(chǔ),虛函數(shù)是非static的成員函數(shù)。 動態(tài)聯(lián)編只能通過指針或引用標識對象來操作虛函數(shù)。 如果采用一般類型的標識對象來操作虛函數(shù),則將采用靜態(tài)聯(lián)編方式調(diào)用虛函數(shù)。 另外可以通過成員函數(shù)調(diào)用實現(xiàn)動態(tài)聯(lián)編。,純虛函數(shù)和抽象類,純虛函數(shù)格式: virtual (參數(shù)表)=0; 帶有純虛函數(shù)的類稱為抽象類; 抽象類是一種特殊的類,為抽象和設(shè)計的目的而建立的,處于繼承成次的最上層。 一般地,抽象類刻畫通用的接口。 一個類從抽象類繼承,如果實現(xiàn)了純虛函數(shù),則不是抽象類,否則該派生類仍為抽象類,C+的常對象和常成員,常對象是指對象常量,定義格式如下:,常對象成員包括常數(shù)據(jù)成員和常成員函數(shù),使用const
15、關(guān)鍵詞說明的函數(shù)為常成員函數(shù),其說明格式如下:,類型 函數(shù)名(參數(shù)表) const;,常數(shù)據(jù)成員只能通過構(gòu)造初始表來初始化;,參考樣題,一、選擇題 (1)下列有關(guān)內(nèi)聯(lián)函數(shù)的敘述中,正確的是 ( D ) A)內(nèi)聯(lián)函數(shù)在調(diào)用時發(fā)生控制轉(zhuǎn)移B)使用內(nèi)聯(lián)函數(shù)有利于代碼重用 C)必須通過關(guān)鍵字inline來定義 D)使用內(nèi)聯(lián)函數(shù)有利于提高效率 (2)下列情況中,哪一種情況不會調(diào)用拷貝構(gòu)造函數(shù) ( B ) A)用派生類的對象去初始化基類對象時 B)將類的一個對象賦值給該類的另一個對象時 C)函數(shù)的形參是類的對象,調(diào)用函數(shù)進行形參和實參結(jié)合時 D)函數(shù)的返回值是類的對象,函數(shù)執(zhí)行返回調(diào)用者時 (3)以下哪一
16、關(guān)鍵字可用于重載函數(shù)的區(qū)分( C ) A)extern B)staticC)constD)virtual,參考樣題,(4)下列有關(guān)繼承和派生的敘述中,正確的是( ) A)派生類不能訪問通過私有繼承的基類的保護成員 B)多繼承的虛基類不能夠?qū)嵗?C)如果基類沒有默認構(gòu)造函數(shù),派生類就應當聲明帶形參的構(gòu)造函數(shù) D)基類的析構(gòu)函數(shù)和虛函數(shù)都不能夠被繼承,需要在派生類中重新實現(xiàn) (5)實現(xiàn)運行時多態(tài)的機制是( ) A)虛函數(shù) B) 重載函數(shù) C)靜態(tài)函數(shù) D)模版函數(shù) (6)下列字符串中,正確的C+標識符是( ) A)enumB)2bC)foo-9D)_32,參考樣題,(7)下列關(guān)于this指針的說法正確的是( ) A)this指針存在于每個函數(shù)之中 B)在類的非靜態(tài)函數(shù)中this指針指向調(diào)用該函數(shù)的對象 C)this指針是指向虛函數(shù)表的指針 D)this指針是指向類的函數(shù)成員的指針 (8)在下列關(guān)于C+函數(shù)的敘述中,正確的是( ) A)每個函數(shù)至少要有一個參數(shù)B)每個函數(shù)都必須返回一個值 C)函數(shù)在被調(diào)用之前必須先聲明 D)函數(shù)不能自己調(diào)用自己 (9)下列運算符中,不能重載的是 ( ) A) class A _(1)_ char name80; public: A( _(2)_ )
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江外國語學院《臨床基本技能Ⅱ》2023-2024學年第二學期期末試卷
- 沈陽航空職業(yè)技術(shù)學院《個人理財-財富流沙盤實訓》2023-2024學年第二學期期末試卷
- 淮北師范大學《建筑設(shè)計四》2023-2024學年第二學期期末試卷
- 山西醫(yī)科大學晉祠學院《建筑裝飾圖形訓練與解析》2023-2024學年第二學期期末試卷
- 遼寧師范大學海華學院《環(huán)境工程施工技術(shù)與管理》2023-2024學年第二學期期末試卷
- 浙江樹人學院《電氣AutoCAD》2023-2024學年第二學期期末試卷
- 德州職業(yè)技術(shù)學院《兒童繪本課程開發(fā)與設(shè)計》2023-2024學年第二學期期末試卷
- 內(nèi)蒙古科技職業(yè)學院《生物制藥導論》2023-2024學年第二學期期末試卷
- 2025美容院美容院加盟店品牌授權(quán)合同
- 2025年度物流園區(qū)物業(yè)管理委托合同
- 潮流嘻哈文化時尚活動策劃演示模板
- 廣東省2024年中考化學試卷【附參考答案】
- 水利水電工程單元工程施工質(zhì)量驗收評定表及填表說明
- 2024年全國高考真題新課標理綜生物試卷(山西、河南、云南、新疆)(解析版)
- 客服專員+云客服安全知識雙11阿里淘寶云客服在線+語音+專項云客服考試試題及答案
- 中石化高級職稱英語考試
- 成人重癥患者人工氣道濕化護理專家共識 解讀
- 2-3-分子生物學與基因工程
- 焦煤集團5MW10MWh儲能技術(shù)方案
- JT-T-617.7-2018危險貨物道路運輸規(guī)則第7部分:運輸條件及作業(yè)要求
- 樹木吊裝施工專項施工方案
評論
0/150
提交評論