版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、面向?qū)ο蟪绦蛟O(shè)計(jì)復(fù)習(xí)課(2008_秋)一、對(duì)照書(shū)本(或上課課件),搞懂有關(guān)概念1. 面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念面向?qū)ο?0-0)程序設(shè)計(jì)是一種新的程序設(shè)計(jì)范型。這種范型的主要特征是:程序=對(duì)象+消息面向?qū)ο蟪绦虻闹饕Y(jié)構(gòu)特點(diǎn)是:第一,程序一般由類的定義和類的使用兩部分組成,在主程序中定義對(duì)象并規(guī)定它們之間傳遞消息 的規(guī)律;第二,程序中的一切操作都是通過(guò)向?qū)ο蟀l(fā)送消息來(lái)實(shí)現(xiàn)的,對(duì)象接收到后,啟動(dòng)有關(guān)方法完成相 應(yīng)操作。第三,類由繼承關(guān)系產(chǎn)生相互間的聯(lián)系。2. 對(duì)象是現(xiàn)實(shí)世界的一個(gè)實(shí)體,其特性是:(1) 每一個(gè)必須有一個(gè)名字以區(qū)別于其他對(duì)象;(2) 用屬性(或叫狀態(tài))來(lái)描述它的某些特征;(3) 有
2、一組操作,每一個(gè)操作決定對(duì)象的一種行為。(4) 對(duì)象的操作可以分為兩類:一類是自身所承受的操作,一類是施加于其他對(duì)象的操作。類是: 一組具有共同的屬性特征和行為特征的對(duì)象的抽象。類與對(duì)象的關(guān)系是抽象和具體的關(guān)系。3.面向?qū)ο笙到y(tǒng)的特征是:封裝性、繼承性和多態(tài)性(1) .將數(shù)據(jù)結(jié)構(gòu)和作用于數(shù)據(jù)結(jié)構(gòu)上的操作組成一個(gè)實(shí)體,數(shù)據(jù)的表示方式和對(duì)數(shù)的操作細(xì)節(jié)被隱 藏起來(lái),用戶通過(guò)操作接口對(duì)數(shù)據(jù)進(jìn)行操作。這就是數(shù)據(jù)的封裝。(2) .繼承機(jī)制允許派生類繼承基類的數(shù)據(jù)和操作(即數(shù)據(jù)成員和成員函數(shù)),也就是說(shuō),允許派生類使用基類的數(shù)據(jù)和操作。同時(shí)派生類還可以增加新的操作和數(shù)據(jù)。從繼承源上分,繼承分為單繼承和多繼承
3、。(3) .面向?qū)ο笙到y(tǒng)的多態(tài)性是指不同的對(duì)象收到相同的消息時(shí)產(chǎn)生多種不同的行為方式。重載的概念4.新的I/O流cin是標(biāo)準(zhǔn)輸入流,在程序中用于代表標(biāo)準(zhǔn)輸入設(shè)備,即鍵盤(pán)。運(yùn)算符“ >>”示向右cout是標(biāo)準(zhǔn)輸出流,在程序中用于代表標(biāo)準(zhǔn)輸出設(shè)備,即屏幕。運(yùn)算符“ VV表示向左使用cin或cout進(jìn)行I/O操作時(shí),在程序中必須嵌入頭文件iostream.h5. new和delete6. 引用引用可為變量起別名,它主要用作函數(shù)參數(shù)以及函數(shù)的返回類型。有變量的引用、參數(shù)引用和返回 值引用。7. 類的定義clsaa 類名 private:(可缺省)私有數(shù)據(jù)成員和函數(shù)成員protected:p
4、ublic:公有數(shù)據(jù)成員和函數(shù)成員;成員函數(shù)的定義第一種方式是在類定義中只給出成員函數(shù)的原形,而成員函數(shù)體在類的外部定義。 第二種方式是將成員函數(shù)定義在類的內(nèi)部,即定義為內(nèi)置函數(shù)。(1) 隱式定義(2) 顯式定義8.對(duì)象中成員的訪問(wèn)不論是數(shù)據(jù)成員,還是成員函數(shù),只要是公有的,就可以被外部函數(shù)直接訪問(wèn),訪問(wèn)的一般格式是:對(duì)象名.數(shù)據(jù)成員名或?qū)ο竺?成員函數(shù)名(實(shí)參表)夕卜部函數(shù)不能引用對(duì)象的私有成員類成員的訪問(wèn)屬性類的公有成員不但可以被類中成員函數(shù)訪問(wèn),還可以在類的外部通過(guò)類的對(duì)象進(jìn)行訪問(wèn)。類的私有 成員只能被類中成員函數(shù)訪問(wèn),不能在類的外部通過(guò)類的對(duì)象進(jìn)行訪問(wèn)。9.構(gòu)造函數(shù)的特點(diǎn):(1) 構(gòu)造
5、函數(shù)的名字必須與類名相同。(2) 構(gòu)造函數(shù)可以有任意類型的參數(shù),但不能具有返回類型。(3) 定義對(duì)象時(shí),編譯系統(tǒng)會(huì)自動(dòng)地調(diào)用構(gòu)造函數(shù)。(4) 構(gòu)造函數(shù)也是成員函數(shù),函數(shù)體可寫(xiě)在類體內(nèi),也可寫(xiě)在類體外。(5) 構(gòu)造函數(shù)被聲明為公有函數(shù),但它不能象其他成員函數(shù)那樣被顯式地調(diào)用,它是在定義對(duì)象的 同時(shí)被調(diào)用的。10. 析構(gòu)函數(shù)也是特殊成員函數(shù),用于釋放對(duì)象。(1) 析構(gòu)函數(shù)與構(gòu)造函數(shù)名字相同,但它前面必須加一個(gè)波浪號(hào)()。(2) 析構(gòu)函數(shù)沒(méi)有參數(shù),也沒(méi)有返回值,而且不能重載,因此在一個(gè)類中只能有一個(gè)析構(gòu)函數(shù)。(3) 當(dāng)撤消對(duì)象時(shí),編譯系統(tǒng)會(huì)自動(dòng)地調(diào)用析構(gòu)函數(shù)。11. 友元:不屬于任何類的一般函數(shù),另
6、一個(gè)類的成員函數(shù),整個(gè)的一個(gè)類。友元函數(shù)不屬于任何類的一般函數(shù)(2) 友元成員該函數(shù)是另一個(gè)類的成員函數(shù),前加上friend表示該另類的成員函數(shù),又是本類的友元成員。(3) .友元類在類內(nèi)說(shuō)明一個(gè)類(該類前面已定義),前加上friend表示該類是本類的友元類。友元類的所有成員函數(shù)可以訪問(wèn)它自己類私有成員又可本類的私有成員12. 派生類的定義基類:class類名類的內(nèi)容;聲明派生類:class派生類名:繼承方式基類名/派生類新增的數(shù)據(jù)成員和函數(shù)成員;繼承方式可為公有繼承(用public)、私有繼承(用private或缺?。┖捅Wo(hù)繼承(用protected)13. 基類成員在派生類中的訪問(wèn)屬性(重
7、點(diǎn))14. 派生類對(duì)基類成員的訪問(wèn)規(guī)則(重點(diǎn))15. 派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)(1)派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)執(zhí)行順序當(dāng)創(chuàng)建派生類對(duì)象時(shí),首先執(zhí)行基類的構(gòu)造函數(shù),隨后再執(zhí)行派生類的構(gòu)造函數(shù);當(dāng)撤消派生類對(duì) 象時(shí),則先執(zhí)行派生類的析構(gòu)函數(shù),隨后再執(zhí)行基類的析構(gòu)函數(shù)。(2).派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的構(gòu)造規(guī)則一般格式為:派生類名(參數(shù)總表):基類名(參數(shù)表)派生類新增成員的初始化語(yǔ)句其中基類構(gòu)造函數(shù)參數(shù),來(lái)源于派生類的構(gòu)造函數(shù)的參數(shù)總表,也可以用常數(shù)值。16. 編譯時(shí)的多態(tài)性與運(yùn)行時(shí)的多態(tài)性靜態(tài)聯(lián)編(前期聯(lián)編)靜態(tài)聯(lián)編要求在程序編譯時(shí)就知道調(diào)用哪個(gè)函數(shù),就決定如何實(shí)現(xiàn)某一動(dòng)作。動(dòng)態(tài)聯(lián)編(后期聯(lián)
8、編、滯后聯(lián)編)一直要到程序運(yùn)行時(shí)才能確定調(diào)用哪個(gè)函數(shù)。系統(tǒng)在運(yùn)行時(shí)才動(dòng)態(tài)完成的聯(lián)編。靜態(tài)聯(lián)編支持的多態(tài)性稱為編譯時(shí)多態(tài)性,也稱靜態(tài)多態(tài)性。在C+中,編譯時(shí)多態(tài)性是通過(guò)函數(shù)重載和運(yùn)算符重載實(shí)現(xiàn)的。動(dòng)態(tài)聯(lián)編支持的多態(tài)性稱為運(yùn)行時(shí)多態(tài)性,也稱動(dòng)態(tài)多態(tài)性。在C+中,運(yùn)行時(shí)多態(tài)性是通過(guò)繼承和虛函數(shù)來(lái)實(shí)現(xiàn)的。函數(shù)重載:類外的一般的函數(shù)、成員函數(shù)和構(gòu)造函數(shù)都可以重載17. 運(yùn)算符重載:除了可以對(duì)函數(shù)重載外,還可以對(duì)大多數(shù)運(yùn)算符實(shí)施重載。外部函數(shù)類的友元函數(shù)是類的成員函數(shù)成員運(yùn)算符函數(shù)定義的語(yǔ)法形式成員運(yùn)算符函數(shù)的原型在類的內(nèi)部聲明格式為:class X返回類型operator 運(yùn)算符(形參表);;18. 引
9、入派生類后的對(duì)象指針引入派生類后,由于派生類是由基類派生出來(lái)的,因此指向基類的指針和指向派生類的指針是相關(guān) 的。(1 )基類的指針可以指向它的公有派生類的對(duì)象。但不允許指向它的私有派生類的對(duì)象。(2 )派生類的指針不允許指向它的基類的對(duì)象。(3)基類的指針指向它的公有派生類的對(duì)象時(shí),只能用它來(lái)直接訪問(wèn)派生類中從基類繼承來(lái)的成員,而不能直接訪問(wèn)公有派生類中定義的新成員。19. 模板的概念(1).函數(shù)模板與模板函數(shù)所謂函數(shù)模板,就是寫(xiě)一個(gè)函數(shù)模子,用這個(gè)模子套印出許多功能相同,參數(shù)類型和返回類型不同的函數(shù)。模板函數(shù):函數(shù)模板實(shí)例化后的具體函數(shù)。(2)類模板和模板類類模板(也稱為類屬類或類生成類)是
10、:允許用戶為類定義一種模子,使得類中的某些數(shù)據(jù)成員,某些成員函數(shù)的參數(shù)或 者返回值,能取任意數(shù)據(jù)類型20. 文件的輸入輸出在含有文件操作的程序中,必須有如下的預(yù)處理命令:# include vfstream.h>復(fù)習(xí)思考題、即考試的A、B、C、D選擇題和填空題一、分清下面的概念,那些是正確的,那些是錯(cuò)誤的1. 面向?qū)ο蟪绦虻闹饕Y(jié)構(gòu)特點(diǎn)之一"程序一般由類的定義和類的使用兩部分組成。程序一般由函數(shù)定義和函數(shù)的使用兩部分組成。 程序一般由變量的定義和變量的使用兩部分組成。程序一般由對(duì)象的定義和對(duì)象的使用兩部分 組成。"程序中的一切操作都是通過(guò)調(diào)用函數(shù)來(lái)實(shí)現(xiàn)的。程序中的一切
11、操作都是通過(guò)定義函數(shù) 來(lái)實(shí)現(xiàn)的。"程序中的一切操作都是通過(guò)向?qū)ο蟀l(fā)送消息來(lái)實(shí)現(xiàn)的。程序中的一切操作都是通 過(guò)定義類來(lái)實(shí)現(xiàn)的。2 對(duì)象是現(xiàn)實(shí)世界中的一個(gè)實(shí)體,其特性V每個(gè)對(duì)象必須有一個(gè)名字。有屬性描述。有一組操作。"必須有一個(gè)關(guān)鍵字,以示區(qū)別。V定義對(duì)象時(shí)會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù)。一定要定義一個(gè)構(gòu)造函數(shù)。一定要有二個(gè)以上數(shù)據(jù)。3. 面向?qū)ο笙到y(tǒng)的特性是唯一性二義性可重用性 安全性V封裝性V繼承性 V多態(tài)性完整性類即是對(duì)象數(shù)組。V抽象和具體的關(guān)系。結(jié)構(gòu)類型和結(jié)構(gòu)體的關(guān)系。指針和所指的對(duì)象的關(guān)系。4 類和對(duì)象之間的關(guān)系是定義和被定義的關(guān)系。調(diào)用和被調(diào)用的關(guān)系。型和值的關(guān)系。V類型和變量
12、之間的關(guān)系。V對(duì)一組具有共同的屬性特征和行為特征的對(duì)象的抽象。類即是對(duì)象V同一類數(shù)據(jù)的集合。同一記錄的集合。同類函數(shù)的集合。現(xiàn)實(shí)世界5 類的概念是對(duì)同一類整型數(shù)據(jù)的集合。數(shù)組。 各種對(duì)象的集合。中所有對(duì)象的集合。6 構(gòu)造函數(shù)的特征V構(gòu)造函數(shù)的函數(shù)名與類名相同。 構(gòu)造函數(shù)必須說(shuō)明返回類型。 V編譯系統(tǒng)會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù)。V構(gòu)造函數(shù)可以重載。構(gòu)造函數(shù)的函數(shù)名與類名不相同。程序中要有調(diào)用構(gòu)造函數(shù)的語(yǔ)句。7 析構(gòu)函數(shù)的特征V個(gè)類中只能定義一個(gè)析構(gòu)函數(shù)。析構(gòu)函數(shù)名與類名不同。析構(gòu)函數(shù)的定義只能在類體內(nèi)析構(gòu)函數(shù)可以有多個(gè)參數(shù)。一個(gè)類中能定義多個(gè)析構(gòu)函數(shù)。V析構(gòu)函數(shù)名與類名相同并加 。V編譯系統(tǒng)會(huì)自動(dòng)調(diào)用析
13、構(gòu)函數(shù)。析構(gòu)函數(shù)可以有多個(gè)參數(shù)& 關(guān)于成員函數(shù)特征的下述描述成員函數(shù)一定是內(nèi)置函數(shù)。V成員函數(shù)可以重載。 V成員函數(shù)可以設(shè)置參數(shù)的缺省值。V成員函數(shù)可以是靜態(tài)的。"類定義中只給出成員函數(shù)的原型,而成員函數(shù)在類外定義。"類定義中只給出成員函數(shù)的原型,而成員函數(shù)在類外定義并在之前加inline 。成員函數(shù)一定要在類內(nèi)定義??稍陬悆?nèi)定義。9 下列的各類函數(shù)中,不是類的成員函數(shù)構(gòu)造函數(shù)析構(gòu)函數(shù)友元函數(shù)拷貝構(gòu)造函數(shù) V主函數(shù)"一般函數(shù)"標(biāo)準(zhǔn)函數(shù)缺省參數(shù)的構(gòu)造函數(shù)10. 友元的作用是什么,一個(gè)類的友元可以訪問(wèn)該類的什么V提高程序的運(yùn)行效率。加強(qiáng)類的封裝性。&
14、quot;實(shí)現(xiàn)數(shù)據(jù)的隱藏性。增加成員函數(shù)的種類V私有成員和公有成員只能是私有成員只能是公有成員成員函數(shù)11. 對(duì)基類和派生類的關(guān)系描述中派生類是基類的具體化。V派生類是基類的子集。V派生類是基類定義的擴(kuò)延。派生類是基類的組合。V無(wú)論哪種派生,基類的私有成員不允許派生類的成員函數(shù)訪問(wèn)。無(wú)論哪種派生,基類的公有成員允許派生類的成員函數(shù)訪問(wèn)。V無(wú)論哪種派生,基類的保護(hù)成員允許派生類的成員函數(shù)訪問(wèn)。V無(wú)論哪種派生,基類的保護(hù)成員不允許派生類的成員函數(shù)訪問(wèn)。12. 派生類的對(duì)象對(duì)它的基類成員中,可以訪問(wèn)的是V公有繼承的公有成員。公有繼承的私有成員。公有繼承的所有成員。私有繼承的公有成員。私有繼承的私有成
15、員。私有繼承的所有成員。V公有繼承的保護(hù)成員。私有繼承的保護(hù)成員。13. 對(duì)定義幾個(gè)重載函數(shù)的要求中,錯(cuò)誤的是。不可重載的函數(shù)的是。V要求參數(shù)的個(gè)數(shù)不同。要求參數(shù)中至少有一個(gè)類型不同。要求函數(shù)名相同。V要求函數(shù)的返回值類型一定不同。普通的成員函數(shù)。友元函數(shù)。外部函數(shù)。V析構(gòu)函數(shù)14. 可定義作運(yùn)算符重載函數(shù)的是構(gòu)造函數(shù)。V成員函數(shù)。 V友元函數(shù)。V類以外的函數(shù)。析構(gòu)函數(shù)。無(wú)返回值的函數(shù)。15. 設(shè)置虛基類的目的是,對(duì)虛基類的論述,正確的是簡(jiǎn)化程序。V消除二義性。提高運(yùn)行效率。減少目標(biāo)代碼。定義虛基類時(shí)加 virtual 。 V定義派生類時(shí),在基類名前加virtual 。在基類的成員函數(shù)前加vi
16、rtual 。在派生類名前加 virtual 。16. 不能重載運(yùn)算符&& V: newV ? :+( ) delete17. 關(guān)于動(dòng)態(tài)聯(lián)編的描述,動(dòng)態(tài)聯(lián)編稱為運(yùn)行時(shí)的多態(tài)性是通過(guò)什么來(lái)實(shí)現(xiàn)的。V動(dòng)態(tài)聯(lián)編是以虛函數(shù)為基礎(chǔ)的。V動(dòng)態(tài)聯(lián)編是在運(yùn)行時(shí)確定所調(diào)用的函數(shù)的。動(dòng)態(tài)聯(lián)編調(diào)用的函數(shù),是用對(duì)象的指針或?qū)ο笠盟傅暮瘮?shù)。動(dòng)態(tài)聯(lián)編是在編譯時(shí)確定操作函數(shù)的。函數(shù)重 載和運(yùn)算符重載。V繼承和虛函數(shù)。運(yùn)算符重載。函數(shù)重載。18. 關(guān)于虛函數(shù)的描述,抽象類論述虛函數(shù)是一個(gè) static 類型的成員函數(shù)。虛函數(shù)是一個(gè)非成員函數(shù)。V虛函數(shù)是在基類中用virtual說(shuō)明,派生類中重新定義的函數(shù)。
17、派生類的虛函數(shù)與基類的虛函數(shù)具有不同的參數(shù)個(gè)數(shù)和類型。V如果一個(gè)類至少有一個(gè)純虛函數(shù),那么該類為抽象類。V抽象類只能用作其他類的基類,不能建立抽象類對(duì)象。V抽象類可以用來(lái)定義指針。抽象類可以作為某個(gè)函數(shù)的返回類型。19. 對(duì)虛基類正確的論述定義基類時(shí)加virtual 。 V 定義派生類時(shí),在基類名前加virtual 。成員函數(shù)前加 virtual在派生類名前加virtual 。20 進(jìn)行文件操作時(shí)需要包含的文件,V iostream.hfstream.h21 在定義類時(shí),第一個(gè)保留字。C+用 cout和cin進(jìn)行輸出/輸入操作時(shí)需要包含文件。stdio.hstdlib.h stri ng.h
18、math.h(class )22 將數(shù)據(jù)結(jié)構(gòu)和作用于數(shù)據(jù)結(jié)構(gòu)上的操作組成一個(gè)實(shí)體,數(shù)據(jù)的表示方式和對(duì)數(shù)據(jù)的操作細(xì)節(jié)被隱藏起來(lái),這是面向?qū)ο蟪绦蛟O(shè)計(jì)的(封裝性)。而函數(shù)重是(多態(tài)性)。23 C+中類的定義內(nèi)部,英文private 段,protected 段,public段(私有段保護(hù)段公有段)24.定義了類A,在主函數(shù)中如出現(xiàn):A *p, obj, ob10;的語(yǔ)句。(則p是對(duì)象指針、obj是對(duì)象、ob是對(duì)象數(shù)組。)25 C+的運(yùn)算符:<< >> new delete(輸入 輸出 申請(qǐng) 釋放)26在C+定義的類中,成員可分為二類,有三個(gè)段。(數(shù)據(jù) 函數(shù) 私有 公有 保護(hù))
19、27 在一個(gè)類定義中,可以聲明友元,友元可以是三種友元。(友元函數(shù)友元成員友元類)28 C+中,函數(shù)說(shuō)明為 void fun(int &i)的引用叫,函數(shù)說(shuō)明為 void &fun(int i)的引用叫。(參數(shù)引用返回值引用)29 繼承機(jī)制允許派生類繼承基類的什么,同時(shí),派生類還可以增加新的什么。(數(shù)據(jù)和操作數(shù)據(jù)和操作)30 一個(gè)類模板允許用戶為類定義什么?使得類中的某些數(shù)據(jù)成員、某些成員函數(shù)的參數(shù)或返回值,能取什么類型?模板是實(shí)現(xiàn)代碼重用機(jī)制的一種工具,函數(shù)模板的實(shí)例化、類模板的實(shí)例化分別稱為(一個(gè)模式(子)任意數(shù)據(jù)類型分別稱為模板函數(shù)、模板類)閱讀程序?qū)戇\(yùn)行結(jié)果、程序填空題
20、(對(duì)照習(xí)題)1. 引用和函數(shù)調(diào)用2. 派生和繼承的應(yīng)用3. 派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)執(zhí)行順序4. 運(yùn)算符重載復(fù)習(xí)思考題1.#i nclude <iostream.h>void mai n() int &n dex(i nt i, i nt b);int a=1,3,5,7,9,j;cout<<a2vv ”;j=in dex(2,a)=25;coutvvj <<” vva2vve ndl;int &index(int i, int b)return bi;答案:5 25 252.#i nclude <iostream.h>void
21、 fun 1(i nt m, int n) m=11; n=24; void fun2(int &m, int &n) m=10; n=20; void mai n() int a=15,b=30;cout<<"a="<<a<<" b="<<b<<e ndl;fun 1(a,b);cout<<"a="<<a<<" b="<<b<<e ndl;fun 2(a,b);cout<&
22、lt;"a="<<a<<" b="<<b<<e ndl;fun 2(a,b);cout<<"a="<<a<<" b="<<b<<e ndl;答案:a=15 b=30a=15 b=30a=10 b=20a=10 b=203.#in clude <iostream.h>class point int x, y;public:point( int x1=0, int y仁0) x=x1; y=y1;vo
23、id prin t();;void poin t:pri nt() cout<<"x="<<x<<" y="v<y<<e ndl;void prin t(po int p) p.pri nt();void mai n() poi nt p1(10,20),p2(30),p3,*p;p=&p1;p->pri nt();p2.pri nt();prin t(p3);答案:x=10 y=20x=30 y=0x=0 y=04.#in clude <iostream.h>class p
24、oint int x, y, d;public:point( int x1=0, int y仁0) x=x1; y=y1; d=x*x+y*y;void prin t()cout<<"x="<<x<<" y="<<y<<” dist= ” <<d<<e ndl;void mai n() poi nt p1(1),p2(2,3),*p;p=&p1;p->pri nt();p2.pri nt();答案:x=1 y=0 dist=1x=2 y=3 dist=135
25、.#in clude <iostream.h>#in clude <stri ng>class strcl char *str;public:"<<e ndl;strcl()cout<<"現(xiàn)在進(jìn)入了 strcl類的缺省構(gòu)造函數(shù)strcl(char *st) cout<<"現(xiàn)在進(jìn)入了 strcl類的構(gòu)造函數(shù)"<<endl;str=new charstrle n( st)+1;strcpy(str,st);void show1() cout< <"n ame:&qu
26、ot;<<str; ;class girl strcl n ame;int age;public:girl():name() cout<<"現(xiàn)在進(jìn)入了 girl 類的缺省構(gòu)造函數(shù) "<<endl;girl(char *st, i nt n ):n ame(st) cout<<"現(xiàn)在進(jìn)入了 girl 類的構(gòu)造函數(shù)"<<endl;age=n;int show2() n ame.show1(); cout<<" age:" retur n age;void mai n(
27、) girl g1;girl g2("zha ng_fun", 20);答案:現(xiàn)在進(jìn)入了strcl類的缺省構(gòu)造函數(shù)現(xiàn)在進(jìn)入了 girl類的缺省構(gòu)造函數(shù) 現(xiàn)在進(jìn)入了 strcl類的構(gòu)造函數(shù) 現(xiàn)在進(jìn)入了 girl類的構(gòu)造函數(shù)6.#in clude <iostream.h>class Time char a9;int hours;int minu tes;int sec on ds;public:Time(i nt s=0, int m=0, int h=0) hours=h;minu tes=m;seconds=s;void show() cout<<&
28、quot;時(shí)間:"<<hours<<":"<<minutes<<":"<<seconds<<endl; frie nd Time operator +(Time t1, Time t2);Time operator +(Time t1, Time t2) Time temp; temp.hours=t1.hours+t2.hours; temp.mi nu tes=t1.mi nu tes+t2.mi nu tes; temp.sec on ds=t1.sec on ds+
29、t2.sec on ds; if(temp.sec on ds>60) temp.sec on ds=temp.sec on ds-60; temp. minu tes+; if(temp.mi nu tes>60) temp.mi nu tes=temp.mi nu tes-60; temp.hours+; if(temp.hours>=24) temp.hours=temp.hours-24; return temp;void mai n() Time T, T1(20,23,21), T2(10,25,15), T3(5,10,15);T=T1+T2;T.show();
30、T=T+T3;T.show();答案:時(shí)間:12:48:30時(shí)間:3:58:357.下面的程序定義一個(gè)類samp,有三類數(shù)據(jù)成員和一個(gè)構(gòu)造函數(shù)和一個(gè)函數(shù)成員,填充程序缺少部分,使其變成完整的 C+程序。#in elude <iostream.h>class sampint a;protected:int b;public:int c;(1) (int n, int m )/ a=n; (2); c=a+b; int(int i)if (i=1) retur n a; else if(i=2) return b; else return 0;void main () samp obj
31、(20,30);cout << (4) << endl;/cout << obj.getab(2) << en dl; / cout << (5) << endl;/ 答案: .samp .b=m;構(gòu)造函數(shù)輸出a輸出b輸出c.getab.obj.getab(l)(5). obj.c8.下面的程序包含了日期(Date)類的聲明,要求設(shè)計(jì)一個(gè) Brithtime類,它繼承了 Date類,并且還 有一項(xiàng)出生孩子的名字 Childname,主程序顯示了一個(gè)小孩的名字和出生日期。請(qǐng)補(bǔ)足 Brithtime類 的#in clude &
32、lt;iostream.h>#in clude <stri ng.h>class Dateprotected:int mon th,day,year;public:Date(i nt m, int d, int y) mon th=m; day=d; year=y; void display() cout<< mon th<<"/"<<day<<"/"<<year<<e ndl;class Brithtime: public Dateprotected:char *
33、Child name;public:/ 補(bǔ)充Brithtime 類的public 部分;void mai n() Brithtime ob("張三 ”,10,1,2004);ob.display();答案: .Brithtime(char *p ,int m, int d, int y):Date(m,d,y) Child name=new charstrle n( p)+1;strcpy(Child name,p);void display() cout<<"姓名:"<<Childname<<"n"cout
34、<<"出生日期:"Date:display();三、程序設(shè)計(jì)題1. C語(yǔ)言復(fù)習(xí)及 C+基礎(chǔ)知識(shí)2 定義類、成員函數(shù)及構(gòu)造函數(shù)的習(xí)題思考題、來(lái)自VC+6.0面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)提綱1. 下面是一個(gè)C程序,改寫(xiě)它,使它采用C+風(fēng)格的I/O語(yǔ)句。#in clude <stdio.h>j #in clude <iostream.h>void mai n() int a,b,d,mi n;printf("輸入兩個(gè)整數(shù):");j cout<<"輸入兩個(gè)整數(shù):"scanf( "%d%d, &
35、amp;a, &b);j cin >>a;cin >>b;min=a>b?b:a;for(d=2;d<=mi n; d+)if(a%d=0)&&(b%d=0)break;if(d > mi n)printf("沒(méi)有公約數(shù)!n");j cout<<"沒(méi)有公約數(shù)!n"elseprintf("最小公約數(shù)是:dn",d);j cout<<"最小公約數(shù)是:"<<d<<endl; 2. 從鍵盤(pán)輸入二個(gè)任意大小的數(shù),
36、在屏幕上從小到大輸出這二個(gè)數(shù)。#in clude <iostream.h>void mai n() int a, b, c;cin> >a; cin> >b;if(a>b) c=a; a=b; b=c; cout<<a<< ” <<b<<e ndl;3.定義一個(gè)基類圓circle ,私有段有圓的半徑,公有段有構(gòu)造函數(shù),能顯示圓面積等。定義派生類ex_square為圓的外切正方形,有構(gòu)造函數(shù),能顯示正方形面積。在主函數(shù)中定義外切正方形 對(duì)象,其圓半徑為10,顯示兩者面積。答案:#in clude <i
37、ostream.h> class circle float r;public:circle (float x=0) void areal () cout<< "/聲明一個(gè)圓類構(gòu)造函數(shù)函數(shù)area () 顯示圓面積圓面積是:"<< 3.14*r*r<<e ndl; r=x; /float getr() retur n r; ;class ex_square : public circle /public:ex_square (float x) : circle (x) / void area2 () cout << &qu
38、ot;派生一個(gè)圓外切正方形類構(gòu)造函數(shù) 函數(shù)area ()顯示正方形面積外切正方形面積是:"<<4*getr()*getr()<<e ndl; /;void mai n() ex_square ob(10);ob.area1();ob.area2();4.定義一個(gè)基類長(zhǎng)方形 base,私有段有長(zhǎng)a和寬b,公有段有構(gòu)造函數(shù),能顯示長(zhǎng)方形面積等。 cuboid,有高h(yuǎn),有構(gòu)造函數(shù),能顯示長(zhǎng)方體體積。在主 10,20,5,顯示出長(zhǎng)方體體積和長(zhǎng)方形底面積。定義以該長(zhǎng)方形為底面積的派生類長(zhǎng)方體 函數(shù)中定義長(zhǎng)方體對(duì)象,其長(zhǎng)、寬、高分別為 答案:#in clude <i
39、ostream.h>class base float a,b;public:/聲明長(zhǎng)方形base (float a1=0, float b1=0) a=a1;b=b1;void area ( )/ cout<< "長(zhǎng)方形面積是:float getr() retur n a*b; 函數(shù)area ()顯示長(zhǎng)方形面積"<< a*b <<e ndl; ;class cuboid : public base float h;public:cuboid (float a1, float b1, float h1 ) : base (a1,b1) h=h1;/以該長(zhǎng)方形為底的派生類長(zhǎng)方體void body ( )/函數(shù)body ()顯示長(zhǎng)方體體積 cout << "長(zhǎng)方體體積是:"<<h*getr()<<e ndl; ;void mai n()cuboid ob(10,20,5);ob.area();ob.body();5.定義一個(gè)基類建筑物building ,私有段有樓房層數(shù)fr ,房間數(shù)r,樓房總面積 m有構(gòu)造函數(shù)。定義派生類住宅樓house,有臥室數(shù)量br,浴室數(shù)量dr,有構(gòu)造函數(shù),能顯示住宅樓所有數(shù)據(jù)。定義派生辦公大樓offic,滅火器數(shù)量
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ó)鉛市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)潤(rùn)磨機(jī)橡膠襯板市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)晶白玉石板材市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)五氯化銻市場(chǎng)調(diào)查研究報(bào)告
- 2024年國(guó)家公務(wù)員考試言語(yǔ)理解與表達(dá)真題有答案
- 云計(jì)算和數(shù)據(jù)中心建設(shè)投資合同
- 汽車零部件供應(yīng)合作協(xié)議
- 2024年10月工作總結(jié)(34篇)
- 醫(yī)療器械銷售售后免責(zé)協(xié)議
- 安全手冊(cè)職場(chǎng)安全與健康保障措施
- 醫(yī)藥銷售培訓(xùn)課程
- 2022-2023學(xué)年北京市海淀區(qū)七年級(jí)(上)期末語(yǔ)文試卷
- 膝關(guān)節(jié)炎階梯治療
- 設(shè)備日常維護(hù)及保養(yǎng)培訓(xùn)
- 行業(yè)背景、經(jīng)濟(jì)運(yùn)行情況及產(chǎn)業(yè)未來(lái)發(fā)展趨勢(shì)分析
- 配電室維護(hù)協(xié)議書(shū)
- 2024年度工作總結(jié)模板簡(jiǎn)約干練風(fēng)格
- 責(zé)任護(hù)理組長(zhǎng)競(jìng)選
- 2024年廣東省第一次普通高中學(xué)業(yè)水平合格性考試歷史試卷(解析版)
- 部編版一年級(jí)上冊(cè)語(yǔ)文期末試題含答案
- 2025屆東莞東華高級(jí)中學(xué)高一生物第一學(xué)期期末考試試題含解析
評(píng)論
0/150
提交評(píng)論