




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、面向?qū)ο蟪绦蛟O(shè)計(jì),總復(fù)習(xí),面向?qū)ο蠹夹g(shù)(OO)引言,1、近年來,在計(jì)算機(jī)軟件業(yè),面向?qū)ο蟮某绦蛟O(shè)計(jì)思想已經(jīng)被越來越多的軟件設(shè)計(jì)人員接受。 2、是一種先進(jìn)、新穎的計(jì)算機(jī)程序設(shè)計(jì)方法。 3、該方法更接近人的思維活動(dòng),因此很大程度地提高了程序設(shè)計(jì)師的編程能力,減少了軟件維護(hù)的開銷。 4、面向?qū)ο蠹夹g(shù)主要通過增加軟件的可擴(kuò)充性和可重用性來提高程序員的編程能力。 5、類屬-程序設(shè)計(jì)方法學(xué),面向過程與面向?qū)ο蟊容^-面向過程,面向過程的程序設(shè)計(jì)思想核心功能分解 面向過程解決實(shí)際問題的過程: 1問題分解為若干個(gè)功能模塊 2、根據(jù)功能模塊設(shè)計(jì)一系列用于存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu) 3、編寫一些過程(或函數(shù))對(duì)這些數(shù)據(jù)操作
2、 缺陷 數(shù)據(jù)和操作分離,給軟件維護(hù)造成沉重的負(fù)擔(dān),因?yàn)橐坏?shù)據(jù)結(jié)構(gòu)變化,整個(gè)操作可能需要重寫,面向過程與面向?qū)ο蟊容^-面向?qū)ο?將數(shù)據(jù)與對(duì)數(shù)據(jù)的操作封裝起來, 用類和對(duì)象來支持面向?qū)ο蠹夹g(shù) 程序中一切操作都是通過對(duì)象發(fā)送消息來實(shí)現(xiàn)的 最大優(yōu)點(diǎn):軟件復(fù)用(重用),基本數(shù)據(jù)類型,關(guān)鍵字,保留字 ANSI標(biāo)準(zhǔn) 基本類型 整型:int 字符型 char 浮點(diǎn)型 float double 空值 void 字長 sizeof函數(shù) 功能:可以輸出數(shù)據(jù)類型字長,常量,標(biāo)識(shí)符 以字母開頭的一串符號(hào) 常量:值不能改變 格式: 1)整型常量 十進(jìn)制、八進(jìn)制(00-7)、十六進(jìn)制(0 x0-F) 2)浮點(diǎn)常量 3)字
3、符常量:ASCII碼值 4)字符串常量 5)符號(hào)常量const 類型 符號(hào)名=值,變量,變量:值可以改變 格式: 類型 變量名 使用方法 1)類型 變量名1,變量名2. 2)類型變量名1 = value1,變量名2. 3)類型變量名1 (value1),變量名2.,運(yùn)算符及優(yōu)先級(jí),算術(shù)運(yùn)算符 +,-,*,/,%(取模),+,- 關(guān)系運(yùn)算符 ,=,(空出位補(bǔ)0),運(yùn)算符及優(yōu)先級(jí),賦值運(yùn)算符 +=,-=,. 其他運(yùn)算符 a ? b :c a為真執(zhí)行b否則執(zhí)行c 強(qiáng)制類型轉(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; 對(duì)比: char str=“abeD”;(5個(gè)空間),語句,1、空語句: “;” 2、if,ifelse 可以嵌套 if() else ,語句體,選擇(開關(guān))語句,switch(m) case m1: break; case m2: break; default: break; *注意:每個(gè)case結(jié)束,要有break,若沒有會(huì)直接進(jìn)入下一個(gè)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),進(jìn)行下一個(gè)循環(huán),結(jié)構(gòu)及其應(yīng)用,格式: struct 結(jié)構(gòu)名 類型 變量名; 類型 變量名; 類型 變量名; ; 使用方法: 結(jié)構(gòu)名 結(jié)構(gòu)實(shí)例;,指針,指針的定義與初始化 存放另一個(gè)變量地址的變量 格式:類型* 指針名 指針的賦值與使用 int i,j; int *pi= 初始化問題,指針及其應(yīng)用,指針的數(shù)據(jù)類型 1: void 指針 2: 空(null)指針值 3: 指針字長: 4個(gè)字節(jié) 4:+,-優(yōu)先級(jí)大于*,指
6、針及其應(yīng)用,const與指針 1、指向常量的指針:指針指向的值不能變 格式:const int *p =val 2、指向指針的常量:指針不能改變 格式:int* const p = val,指針及其應(yīng)用,動(dòng)態(tài)內(nèi)存申請(qǐng)與釋放(重難點(diǎn)) New int *p = new int(5); /初始化 int *p = new int5; delete delete p; delete p; 例:學(xué)生記錄中使用new,delete,指針與數(shù)組,一維數(shù)組指針表示 int a5; *(a+2), a2; 二維數(shù)組指針表示 int a23; a23: (*(a+2)+3),(*(a+2)3, *(a2+3),
7、 三維數(shù)組指針表示 類似二維,引用,預(yù)處理語句,1、#開始,獨(dú)占一行; 2、程序編譯之前被執(zhí)行 3、三種預(yù)處理功能的語句 #include 文件包含語句:區(qū)分,” 條件編譯(忽略) #ifdef.#else.#endif; #ifndef#else#endif; 宏定義:#define 區(qū)別#define 與 const const有類型,且可以定義一個(gè)局部變量;#define無類型,其生存周期從開始定義到#undef取消 const是一條語句;#define是預(yù)處理語句,無;結(jié)尾,函數(shù)的定義和聲明,無參函數(shù)的定義 類型標(biāo)識(shí)符 函數(shù)名() 聲明部分語句 有參函數(shù)的定義 類型標(biāo)識(shí)符 函數(shù)名(形式
8、參數(shù)表列) 聲明部分語句 ,函數(shù)返回值,void 函數(shù)名() 無返回值 類型 函數(shù)名() 有返回值 Return 返回值,函數(shù)參數(shù),形式參數(shù): 在定義函數(shù)時(shí)函數(shù)名后面的括號(hào)中的變量稱為形式參數(shù),簡稱形參。 實(shí)際參數(shù) 在調(diào)用函數(shù)時(shí),函數(shù)名后面括號(hào)中的表達(dá)式稱為實(shí)際參數(shù),簡稱實(shí)參。 缺省參數(shù) 最后續(xù)參數(shù)設(shè)定默認(rèn)值,不能間隔參數(shù)設(shè)定 函數(shù)參數(shù)傳遞方式 傳值、傳地址、引用,內(nèi)聯(lián)函數(shù),函數(shù)鏈接的方式: 地址轉(zhuǎn)換,要保存上下文信息,開銷大 代碼嵌入,但程序體積急劇增大 目的: 主要解決程序中函數(shù)調(diào)用的效率問題 使用場(chǎng)合 代碼量不大,但又頻繁調(diào)用 聲明格式 inline 類型 函數(shù)名(參數(shù)),函數(shù)重載,一個(gè)
9、函數(shù)對(duì)應(yīng)多個(gè)函數(shù)的實(shí)現(xiàn),函數(shù)重載要求編譯器能唯一的確定調(diào)用一個(gè)函數(shù)時(shí)應(yīng)執(zhí)行那個(gè)函數(shù)代碼 確定函數(shù)實(shí)現(xiàn)時(shí),要求從函數(shù)參數(shù)的個(gè)數(shù)和類型上來區(qū)分。 僅返回值不同的函數(shù),不屬于函數(shù)重載,編譯時(shí)會(huì)出錯(cuò),什么是類,類是復(fù)雜的數(shù)據(jù)類型, 它將不同類型的數(shù)據(jù)和與這些數(shù)據(jù)相關(guān)的操作封裝在一起。因此類具有更高的抽象性。類中數(shù)據(jù)具有隱藏性,類還具有封裝性。 描述一類事物 類的內(nèi)容: 數(shù)據(jù) :稱為數(shù)據(jù)成員 對(duì)數(shù)據(jù)的操作 :稱為成員函數(shù),類的定義格式,class public: private: ; ,訪問控制屬性 Public,private,protected 可有多個(gè),且無順序,類,訪問控制符 public:為公
10、有屬性,private:為私有屬性; 對(duì)象的使用:普通對(duì)象、指針對(duì)象 構(gòu)造函數(shù) 缺省、一般、拷貝構(gòu)造函數(shù) 對(duì)象聲明時(shí)自動(dòng)調(diào)用 析構(gòu)函數(shù) 對(duì)象銷毀時(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ù)成員,定義和聲明時(shí)前面加static 初始化: 數(shù)據(jù)類型 :靜態(tài)數(shù)據(jù)成員=值 使用方式: 類名:靜態(tài)成員名 注意: 初始化在類體外,前面不加static 初始化不加訪問權(quán)限控制符 初始化時(shí)前面加類作用域符,屬于類而不屬于對(duì)象 必須進(jìn)行初始化,靜態(tài)成員函數(shù),屬于類,不屬于某
11、個(gè)對(duì)象 靜態(tài)成員函數(shù)不能直接引用非靜態(tài)成員,可以引用靜態(tài)成員,如果要引用非靜態(tài)成員,可以通過對(duì)象 聲明: Static 返回類型 函數(shù)名(參數(shù)) 實(shí)現(xiàn): 返回類型 函數(shù)名(參數(shù)) 使用: 類名:函數(shù)名(參數(shù)),基類和派生類,通過繼承機(jī)制,可以利用已有的數(shù)據(jù)類型來定義新的數(shù)據(jù)類型。 所定義的新的數(shù)據(jù)類型不僅擁有新定義的成員,而且還同時(shí)擁有舊的成員。 基類 已存在的用來派生新類的類,又稱為父類。 派生類 已存在的類派生出的新類,又稱為子類。,繼承形式,繼承有抽象級(jí)別,派生類的定義方式,單繼承的定義格式: class: ; 有如下三類: public 表示公有繼承 private 表示私有繼承 pr
12、otected 表示保護(hù)繼承 成員的可見性,多繼承,多繼承的構(gòu)造函數(shù) ():(參數(shù)表1), (參數(shù)表2).,(參數(shù)表2), 二義性問題 由于繼承類中成員有重名的問題,所以,繼承時(shí)候,會(huì)產(chǎn)生二義性問題,注意避免這種問題,解決方法:虛基類。,二義性,繼承成員的不唯一性,二義性的解決方法,問題1的解決方法 使用相同函數(shù)時(shí)用類作用域符限定 C c; c.A:F() 推薦重新定義同名函數(shù),在實(shí)現(xiàn)時(shí)根據(jù)條件使用哪個(gè)類的函數(shù) CF 問題2的解決方法 可以采用上述方法“就近”解決 用虛基類解決,多態(tài)性和虛函數(shù),多態(tài)性 指發(fā)出同樣的消息被不同類型的對(duì)象接收時(shí)導(dǎo)致的行為完全不同。 函數(shù)的調(diào)用:一個(gè)函數(shù)對(duì)應(yīng)不同的實(shí)
13、現(xiàn) 多態(tài)性的形式 函數(shù)重載和運(yùn)算符重載。 虛函數(shù)。,重載,函數(shù)重載 運(yùn)算符重載 形式 重載為成員函數(shù) 重載為友元 重載格式: 類型 operator 運(yùn)算符(參數(shù)),靜態(tài)聯(lián)編和動(dòng)態(tài)聯(lián)編,靜態(tài)聯(lián)編 指聯(lián)編工作出現(xiàn)在編譯連接階段,又稱為早期聯(lián)編。 在編譯時(shí)進(jìn)行的聯(lián)編又稱靜態(tài)束定。在編譯時(shí)就解決了程序中的操作調(diào)用與執(zhí)行該操作代碼間的關(guān)系。確定這種關(guān)系成為束定。 動(dòng)態(tài)聯(lián)編 指聯(lián)編工作出現(xiàn)在運(yùn)行階段,又稱為晚期聯(lián)編。 在運(yùn)行時(shí)才解決了程序中的操作調(diào)用與執(zhí)行該操作代碼間的關(guān)系。,虛函數(shù),格式: virtual (參數(shù)表) 一個(gè)函數(shù)說明為虛函數(shù),意味著該成員函數(shù)在派生類中可能有不同的實(shí)現(xiàn)。 虛函數(shù)是動(dòng)態(tài)聯(lián)編
14、的基礎(chǔ),虛函數(shù)是非static的成員函數(shù)。 動(dòng)態(tài)聯(lián)編只能通過指針或引用標(biāo)識(shí)對(duì)象來操作虛函數(shù)。 如果采用一般類型的標(biāo)識(shí)對(duì)象來操作虛函數(shù),則將采用靜態(tài)聯(lián)編方式調(diào)用虛函數(shù)。 另外可以通過成員函數(shù)調(diào)用實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編。,純虛函數(shù)和抽象類,純虛函數(shù)格式: virtual (參數(shù)表)=0; 帶有純虛函數(shù)的類稱為抽象類; 抽象類是一種特殊的類,為抽象和設(shè)計(jì)的目的而建立的,處于繼承成次的最上層。 一般地,抽象類刻畫通用的接口。 一個(gè)類從抽象類繼承,如果實(shí)現(xiàn)了純虛函數(shù),則不是抽象類,否則該派生類仍為抽象類,C+的常對(duì)象和常成員,常對(duì)象是指對(duì)象常量,定義格式如下:,常對(duì)象成員包括常數(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)用時(shí)發(fā)生控制轉(zhuǎn)移B)使用內(nèi)聯(lián)函數(shù)有利于代碼重用 C)必須通過關(guān)鍵字inline來定義 D)使用內(nèi)聯(lián)函數(shù)有利于提高效率 (2)下列情況中,哪一種情況不會(huì)調(diào)用拷貝構(gòu)造函數(shù) ( B ) A)用派生類的對(duì)象去初始化基類對(duì)象時(shí) B)將類的一個(gè)對(duì)象賦值給該類的另一個(gè)對(duì)象時(shí) C)函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí) D)函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行返回調(diào)用者時(shí) (3)以下哪一
16、關(guān)鍵字可用于重載函數(shù)的區(qū)分( C ) A)extern B)staticC)constD)virtual,參考樣題,(4)下列有關(guān)繼承和派生的敘述中,正確的是( ) A)派生類不能訪問通過私有繼承的基類的保護(hù)成員 B)多繼承的虛基類不能夠?qū)嵗?C)如果基類沒有默認(rèn)構(gòu)造函數(shù),派生類就應(yīng)當(dāng)聲明帶形參的構(gòu)造函數(shù) D)基類的析構(gòu)函數(shù)和虛函數(shù)都不能夠被繼承,需要在派生類中重新實(shí)現(xiàn) (5)實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)的機(jī)制是( ) A)虛函數(shù) B) 重載函數(shù) C)靜態(tài)函數(shù) D)模版函數(shù) (6)下列字符串中,正確的C+標(biāo)識(shí)符是( ) A)enumB)2bC)foo-9D)_32,參考樣題,(7)下列關(guān)于this指針的說法正確的是( ) A)this指針存在于每個(gè)函數(shù)之中 B)在類的非靜態(tài)函數(shù)中this指針指向調(diào)用該函數(shù)的對(duì)象 C)this指針是指向虛函數(shù)表的指針 D)this指針是指向類的函數(shù)成員的指針 (8)在下列關(guān)于C+函數(shù)的敘述中,正確的是( ) A)每個(gè)函數(shù)至少要有一個(gè)參數(shù)B)每個(gè)函數(shù)都必須返回一個(gè)值 C)函數(shù)在被調(diào)用之前必須先聲明 D)函數(shù)不能自己調(diào)用自己 (9)下列運(yùn)算符中,不能重載的是 ( ) A) class A _(1)_ char name80; public: A( _(2)_ )
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度黑龍江省高校教師資格證之高等教育法規(guī)題庫綜合試卷A卷附答案
- 2024年大學(xué)語文文化自信與寫作能力試題及答案
- 2024年圖書管理員考試新鮮出爐試題及答案
- 媒體監(jiān)測(cè)平臺(tái)
- 湖南單招職業(yè)測(cè)試計(jì)算機(jī)題基礎(chǔ)題
- (高清版)DB12∕T 497-2013 高壓地下儲(chǔ)氣井定期檢驗(yàn)與評(píng)定
- (高清版)DB12∕T 590-2015 在用汽車排氣污染物限值及檢測(cè)方法(遙測(cè)法)
- 危險(xiǎn)品自查報(bào)告10篇
- 醫(yī)院檢驗(yàn)工作總結(jié)6
- 情侶協(xié)議(2025年版)-@-1
- NB-T35020-2013水電水利工程液壓啟閉機(jī)設(shè)計(jì)規(guī)范
- (高清版)JTG 5142-2019 公路瀝青路面養(yǎng)護(hù)技術(shù)規(guī)范
- 2024年遼寧鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測(cè)試題庫必考題
- 廣汽埃安高壓快充技術(shù)應(yīng)用介紹-2024-05-技術(shù)資料
- 刑事報(bào)案材料模板(涉嫌詐騙罪)
- 屋頂分布式光伏電站施工組織設(shè)計(jì)
- 2024年全國高中數(shù)學(xué)聯(lián)賽試題(及答案)
- 電力企業(yè)合規(guī)培訓(xùn)課件
- 2020年10月軟件工程自考真題及答案
- 村級(jí)項(xiàng)目實(shí)施管理制度
- 醫(yī)務(wù)科依法執(zhí)業(yè)自查表
評(píng)論
0/150
提交評(píng)論