版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、分教課教職使院(部)研 室程名 稱師 姓名稱用教材教 案信息學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)面向?qū)ο蟪绦蛟O(shè)計(jì)金淑娟講師C+語(yǔ)言程序設(shè)計(jì)教務(wù)處制授課內(nèi)容:第一章面向?qū)ο蟪绦蛟O(shè)計(jì)概念授課時(shí)數(shù)6教學(xué)目的及要求:了解:程序設(shè)計(jì)方法的發(fā)展過(guò)程,面向?qū)ο笳Z(yǔ)言的特點(diǎn)。掌握:面向?qū)ο蟮母拍睿嫦驅(qū)ο蟮某绦蜷_(kāi)發(fā)過(guò)程。教學(xué)基本內(nèi)容:程序設(shè)計(jì)方法的發(fā)展過(guò)程;面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想及概念,面向?qū)ο蟪绦蛟O(shè)計(jì)的要點(diǎn) 及開(kāi)發(fā)過(guò)程。重點(diǎn)及難點(diǎn):面向?qū)ο蟮母拍?,面向?qū)ο蟮某绦蜷_(kāi)發(fā)過(guò)程。教學(xué)方法:口講授法M討論法M口自學(xué)指導(dǎo)法其他M教學(xué)手段:口多媒體M口實(shí)物模型口掛圖口音像其他板書(shū)設(shè)計(jì):討論、思考題、作業(yè):1 .敘述面向?qū)ο蠡舅枷氲奶?/p>
2、點(diǎn)。2 .敘述面向?qū)ο蟮某绦蛟O(shè)計(jì)方法與傳統(tǒng)回向過(guò)程的程序設(shè)計(jì)方法有何不同。3 .什么是類(lèi),什么是對(duì)象,類(lèi)和對(duì)象是怎樣的關(guān)系?4 .抽象包括哪兩方面的含義?5 .什么是封裝,它具有怎樣的特點(diǎn)?6 .什么是多態(tài)?多態(tài)的實(shí)現(xiàn)方式及作用有哪些?7 .什么叫對(duì)象的封裝性?什么叫信息隱藏? C+語(yǔ)言是怎樣實(shí)現(xiàn)信息隱藏的?8 .什么叫繼承?什么叫派生?9 .什么叫多態(tài)性?多態(tài)性主要有哪幾種?10 .什么叫運(yùn)行時(shí)的多態(tài)性? C+語(yǔ)言中是怎樣實(shí)現(xiàn)運(yùn)行時(shí)的多態(tài)性的?參考資料(含參考書(shū)目、文獻(xiàn)等):1、Hacy M.Dcitcl 71 Paul James DcitclC+大學(xué)教程(第三版),電子工業(yè)出版社。2、劉
3、正林,面向?qū)ο蟪绦蛟O(shè)計(jì),華中科技大學(xué)出版社。3、周生炳等,面向?qū)ο蟪绦蛟O(shè)計(jì),清華大學(xué)出版社。4、揣錦華,面向?qū)ο蟪绦蛟O(shè)計(jì)與VC+實(shí)踐,西安電子科技大學(xué)出版社。5、王育堅(jiān)編,面向?qū)ο缶幊探坛?,清華大學(xué)出版社。6、王萍編著,C+面向?qū)ο蟪绦蛟O(shè)計(jì),清華大學(xué)出版社出版。7、徐孝凱等編,面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn),中央廣播電視大學(xué)出版社出版。第一節(jié)面向?qū)ο蟮姆椒ㄒ?、面向?qū)ο蟮恼Z(yǔ)言出發(fā)點(diǎn):更直接地描述客觀世界中存在的事物時(shí)象)以及它們之間的關(guān)系。特點(diǎn):是高皴語(yǔ)言。將客觀事物看作具有屬性和行為的對(duì)象。通過(guò)抽象找出同一類(lèi)對(duì)象的共同屬性和行為,形成類(lèi)。通過(guò)類(lèi)的繼承與多態(tài)實(shí)現(xiàn)代碼重用。優(yōu)點(diǎn):使程序能夠比較直接地反問(wèn)題域
4、的本來(lái)面目,軟件開(kāi)發(fā)人員能夠利用人類(lèi)認(rèn)識(shí)事 物所采用的一般思維方法來(lái)進(jìn)行軟件開(kāi)發(fā)。二、程序設(shè)計(jì)方法的發(fā)展歷程1 .面向過(guò)程的程序設(shè)計(jì)方法程序的目的:用于教學(xué)計(jì)算。主要工作:設(shè)計(jì)求解問(wèn)題的過(guò)程。缺點(diǎn):對(duì)于龐大、宜雜的程序難以開(kāi)發(fā)和維護(hù)。2 .面向過(guò)程的結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)思跖:自頂向下、逐步求精。采用模塊分解與功能抽象,自頂向下、分而治之。程序結(jié)構(gòu):按功能劃分為若干個(gè)基本模塊,形成一個(gè)樹(shù)狀結(jié)構(gòu)。各模塊間的關(guān)系盡可能簡(jiǎn) 單,功能上相對(duì)獨(dú)立;每一模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組 成。其模塊化實(shí)現(xiàn)的具體方法是使用于程序。優(yōu)點(diǎn):有效地將一個(gè)較更雜的程序系統(tǒng)設(shè)計(jì)任務(wù)分解成許多易于控制和處理的
5、于任 務(wù),便于開(kāi)發(fā)和維護(hù)。缺點(diǎn):可重用性差、數(shù)據(jù)安全性差、難以開(kāi)發(fā)大型軟件和圖形界面的應(yīng)用軟件。具體有 以下幾點(diǎn):- 把數(shù)據(jù)和處理數(shù)據(jù)的過(guò)程分離為相互獨(dú)立的實(shí)體。- 當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時(shí),所有相關(guān)的處理過(guò)程都要進(jìn)行相應(yīng)的修改。- 每一種相對(duì)于老問(wèn)題的新方法都要帶來(lái)額外的開(kāi)錯(cuò),程序的可重用性差。- 圖形用戶界面的應(yīng)用程序,很難用過(guò)程來(lái)描述和實(shí)現(xiàn),開(kāi)發(fā)和維護(hù)也都很困 難。3 .面向?qū)ο蟮姆椒ǚ椒ǎ?將數(shù)據(jù)及對(duì)數(shù)據(jù)的操作方法封裝在一起,作為一個(gè)相互依存、不可分離 的整體一對(duì)象。 對(duì)同類(lèi)型對(duì)象抽象出其共性,形成類(lèi)。 類(lèi)通過(guò)一個(gè)簡(jiǎn)單的外部接口,與外界發(fā)生關(guān)系。 對(duì)象與對(duì)象之間通過(guò)消息進(jìn)行通訊。優(yōu)點(diǎn): 程序模
6、塊間的關(guān)系更為筒單,程序模塊的獨(dú)立性、數(shù)據(jù)的安全性就有了 良好的保障。 通過(guò)繼承與多態(tài)性,可以大大提高程序的可重用性,使得軟件的開(kāi)發(fā)和維護(hù)都更為方便。三、面向?qū)ο蟮幕靖拍?. 一般意義上的對(duì)象: 是現(xiàn)實(shí)世界中一個(gè)實(shí)際存在的事物。 可以是有形的(比如一輛汽車(chē)),也可以是無(wú)形的(比如一項(xiàng)計(jì)劃)。 是構(gòu)成世界的一個(gè)獨(dú)立單位,具有:靜態(tài)特征-可以用某種數(shù)據(jù)來(lái)描述動(dòng)態(tài)特征-對(duì)象所表現(xiàn)的行為或具有的功能2 .面向?qū)ο蠓椒ㄖ械膶?duì)象: 是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是用來(lái)構(gòu)成系統(tǒng)的一個(gè)基 本單位。對(duì)象由一組屬性和一組行為構(gòu)成。 屬性-用來(lái)描述對(duì)象靜態(tài)特征的數(shù)據(jù)項(xiàng)。 行為-用來(lái)描述對(duì)象動(dòng)態(tài)特征的操作序
7、列。3 .分類(lèi)所依據(jù)的原則一一抽象忽略事物的非本質(zhì)特征,只注意那些與當(dāng)前目標(biāo)有關(guān)的本質(zhì)特征,從而找出 事物的共性,把具有共同性質(zhì)的事物劃分為一類(lèi),得出一個(gè)抽象的概念。 例如,石頭、樹(shù)木、汽車(chē)、分類(lèi)人類(lèi)通常的思維方法。房屋等都是人們?cè)陂L(zhǎng)期的生產(chǎn)和生活實(shí)踐中抽象出的概念。4 .面向?qū)ο蠓椒ㄖ械摹邦?lèi)” 具有相同屬性和服務(wù)的一組對(duì)象的集臺(tái)。 為屬于該類(lèi)的全部對(duì)象提供了抽象的描述,包括屬性和行為兩個(gè)主要部分。 類(lèi)與對(duì)象的關(guān)系:猶如模具與鑄件之間的關(guān)系,一個(gè)屬于某類(lèi)的對(duì)象稱為該類(lèi)的一個(gè)實(shí)例。5 .面向?qū)ο蠓椒ㄖ械?,封裝” 把對(duì)象的屬性和服務(wù)結(jié)合成一個(gè)獨(dú)立的系統(tǒng)單元。 盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。對(duì)外形成一個(gè)
8、邊界(或者說(shuō)一道屏障),只保留有限的對(duì)外接口使之與外部發(fā)生聯(lián)系。6 .面向?qū)ο蠓椒ㄖ械摹袄^承”繼承對(duì)于軟件復(fù)用有著重要意義,是面向?qū)ο蠹夹g(shù)能夠提高軟件開(kāi)發(fā)效率 的重要原因之一。 定義:特殊類(lèi)的對(duì)象擁有其一般類(lèi)的全部屬性與服務(wù),稱作特殊類(lèi)對(duì)一般類(lèi) 的繼承。例如:將輪船作為一個(gè)一般類(lèi),客輪便是一個(gè)特殊類(lèi)。7 .面向?qū)ο蠓椒ㄖ械?,多態(tài)性” 多態(tài)是指在一般類(lèi)中定義的屬性或行為,被特殊類(lèi)繼承之后,可以具有不 同的數(shù)據(jù)類(lèi)型或表現(xiàn)出不同的行為。這使得同一個(gè)屬性或行為在一般類(lèi)及其 各個(gè)特殊類(lèi)中具有不同的語(yǔ)義。例如:數(shù)的加法-實(shí)數(shù)的加法分集:數(shù)的加法第二節(jié)面向?qū)ο蟮能浖_(kāi)發(fā)面向?qū)ο蟮能浖こ蹋ㄜ浖_(kāi)發(fā))是面向?qū)?/p>
9、象方法在軟件工程領(lǐng)域的全面應(yīng)用。它包 括:- 面向?qū)ο蟮姆治觯≦QA)- 面向?qū)ο蟮脑O(shè)計(jì)(0()0)- 面向?qū)ο蟮木幊蹋∣OP)- 面向?qū)ο蟮臏y(cè)試(QQT)- 面向?qū)ο蟮能浖S護(hù)(QQSM)一、系統(tǒng)分析 系統(tǒng)分析階段應(yīng)該扼要精確地抽象出系統(tǒng)必須做什么,但是不關(guān)心如何去實(shí) 現(xiàn)。 面向?qū)ο蟮南到y(tǒng)分析,直接用問(wèn)題域中客觀存在的事物建立模型中的對(duì)象,對(duì) 單個(gè)事物及事物之間的關(guān)系,都保留他們的原貌,不做轉(zhuǎn)換,也不打破原有界 限而重新組合,因此能夠很好地映射客觀事物。二、設(shè)計(jì) 針對(duì)系統(tǒng)的一個(gè)具體實(shí)現(xiàn)運(yùn)用面向?qū)ο蟮姆椒?。其中包括兩方面的工作? 把OOA模型直接搬到QOD,作為QOD的一部分。針對(duì)具體實(shí)現(xiàn)中
10、的人機(jī)界面、數(shù)據(jù)存儲(chǔ)、任務(wù)管理等因素補(bǔ)充一些與 實(shí)現(xiàn)有關(guān)的部分。三、編程QQP工作就是用一種面向?qū)ο蟮木幊陶Z(yǔ)言把QQD模型中的每個(gè)成分書(shū)寫(xiě)出來(lái), 是面向?qū)ο蟮能浖_(kāi)發(fā)最終落實(shí)的重要階段。四、測(cè)試測(cè)試的任務(wù)是發(fā)現(xiàn)軟件中的錯(cuò)誤。在面向?qū)ο蟮能浖y(cè)試中繼續(xù)運(yùn)用面向?qū)ο蟮母拍钆c原則來(lái)組織測(cè)試,以對(duì)象的 類(lèi)作為基本測(cè)試單位,可以更準(zhǔn)確的發(fā)現(xiàn)程序錯(cuò)誤并提高測(cè)試效率。五、維護(hù)將軟件交付使用后,工作并沒(méi)有完結(jié),還要根據(jù)軟件的運(yùn)行情況和用戶需求,不 斷改進(jìn)系統(tǒng)。使用面向?qū)ο蟮姆椒ㄩ_(kāi)發(fā)的軟件,其程序與問(wèn)題域是一致的,因此,在維護(hù)階段運(yùn) 用面向?qū)ο蟮姆椒梢源蟠筇岣哕浖S護(hù)的效率。授課內(nèi)容:第一章類(lèi)與對(duì)象授課時(shí)數(shù)1
11、8教學(xué)目的及要求:掌握:類(lèi)定義的方法和存取級(jí)別。掌握:類(lèi)的成員變星和成員函數(shù)的定義和使用,以及對(duì)象的定義。了解:友元函數(shù)和友元類(lèi)。掌握:構(gòu)造函數(shù)和析構(gòu)函數(shù)。掌握:靜態(tài)類(lèi)成員變量和成員函數(shù)的定義和使用方法。掌握:內(nèi)聯(lián)函數(shù)的定義和使用方法。掌握:對(duì)象指針及對(duì)象引用的使用。了解:容器類(lèi)的定義。掌握:在函數(shù)中對(duì)象傳遞的機(jī)制。教學(xué)基本內(nèi)容:類(lèi)的聲明,對(duì)象的定義,構(gòu)造函數(shù)、析構(gòu)函數(shù),對(duì)象指針,對(duì)象引用,靜態(tài)成 員,友元,標(biāo)識(shí)符的作用域,對(duì)象數(shù)組,成員對(duì)象,對(duì)象的存儲(chǔ)類(lèi)等。重點(diǎn)與難點(diǎn):類(lèi)及類(lèi)對(duì)象的定義,構(gòu)造函數(shù)、析構(gòu)函數(shù)的定義,對(duì)象指針及對(duì)象引用的使用, 容器類(lèi)的定義。教學(xué)方法:口講授法M討論法M口自學(xué)指導(dǎo)
12、法其他M-教學(xué)手段:口多媒體M口實(shí)物 模型 口掛圖 口音像 其他板書(shū)設(shè)計(jì):討論、思考題:1 .什么是類(lèi),什么是對(duì)象,類(lèi)和對(duì)象是怎樣的關(guān)系?2 .敘述靜態(tài)成員和一般成員的區(qū)別。3 .什么叫友元?什么叫友元類(lèi)?什么叫友元函教?什么叫友元成員函數(shù)?4,敘述友元與類(lèi)的封裝性之間的關(guān)系。5.友元方法有什么優(yōu)點(diǎn)?有什么缺點(diǎn)?作業(yè):見(jiàn)書(shū)中第四章練習(xí)參考資料(含參考書(shū)目、文獻(xiàn)等):1、Harvey M.DuituI及Paul JamusDukd首,C+大學(xué)教程(第三板),電子工業(yè)出版社。2、劉正林,面向?qū)ο蟪绦蛟O(shè)計(jì),華中科技大學(xué)出版社。3、周生炳等,面向?qū)ο蟪绦蛟O(shè)計(jì),清華大學(xué)出版社。4、揣錦華,面向?qū)ο蟪绦蛟O(shè)
13、計(jì)與VC+實(shí)踐,西安電子科技大學(xué)出版社。5、王育堅(jiān)編,面向?qū)ο缶幊探坛?,清華大學(xué)出版社。6、王萍編著,C+面向?qū)ο蟪绦蛟O(shè)計(jì),清華大學(xué)出版社出版。7、徐孝凱等編,面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn),中央廣播電視大學(xué)出板社出版。第一節(jié)C+的面向?qū)ο蟮母拍钜?、抽象的概念抽象是?duì)具體對(duì)象(問(wèn)題)進(jìn)行概括,抽出這一類(lèi)對(duì)象的公共性質(zhì)并加以描述的過(guò)程。-先注意問(wèn)題的本質(zhì)及描述,其次是實(shí)現(xiàn)過(guò)程或細(xì)節(jié)。- 數(shù)據(jù)抽象:描述某類(lèi)對(duì)象的屬性或狀態(tài)(對(duì)象相互區(qū)別的物理星)。- 代碼抽象:描述某類(lèi)對(duì)象的共有的行為特征或具有的功能。- 抽象的實(shí)現(xiàn):通過(guò)類(lèi)的聲明。二、抽象實(shí)例1 .日期抽象實(shí)例數(shù)據(jù)抽象:int Year, int Mont
14、h, int Day代碼抽象:SclPatcO,設(shè)置年、月、日IsLcapYcarO,”計(jì)算某年是否為閏年ShowDalrO,/顯示年、月、日的值抽象實(shí)例日期類(lèi)class Datepublic:void SctDatc(int y, int m, int d);int IsLcapDatcQ;void ShowDalcO;private:inv Year,Month,Day;2 .鐘表抽象實(shí)例-鐘表數(shù)據(jù)抽象:inv Hour, int Minute, int Second代碼抽象:SetTimeO, ShowTimcQ抽象實(shí)例鐘表類(lèi)class Clockpublic:void SctTimc(
15、int NewH, int New, int NewS);void ShowTimcO;private:int Hour,Minute,Second;3 .抽象實(shí)例人數(shù)據(jù)抽象:char *namc,char * gender,int age,int id代碼抽象:生物屬性角度:GctClothO, EatQ, StepO,-社會(huì)屬性角度:WorkQ, Promote:。,二、封裝將抽象出的數(shù)據(jù)成員、代碼成員相結(jié)合,將它們視為一個(gè)整體。- 目的是曾強(qiáng)安全性和簡(jiǎn)化編程,使用者不必了解具體的實(shí)現(xiàn)細(xì)節(jié),而只需要通過(guò)外部接口,以特定的訪問(wèn)權(quán)限,來(lái)使用類(lèi)的成員。- 實(shí)現(xiàn)封裝:類(lèi)聲明中的實(shí)例:class C
16、lockpublic:void SciTimc(int NcwH, int NcwM, int NcwS);void ShowTimcO;private:inv Hour,Minute,Second;三、繼承與派生是C+中支持層次分類(lèi)的一種機(jī)制,允許程序員在保持原有類(lèi)特性的基礎(chǔ)上,進(jìn) 行更具體的說(shuō)明。實(shí)現(xiàn):聲明派生類(lèi)第七章四、多態(tài)性 多態(tài):同一名稱,不同的功能實(shí)現(xiàn)方式。 目的:達(dá)到行為標(biāo)識(shí)統(tǒng)一,減少程序中標(biāo)識(shí)符的個(gè)教。 實(shí)現(xiàn):重載函數(shù)和虛函數(shù)一一.第7(章五、C+中的類(lèi) 類(lèi)是具有相同屬性和行為的一組對(duì)象的集臺(tái),它為屬于該類(lèi)的全部對(duì)象提供了 統(tǒng)一的抽象描述,其內(nèi)部包括屬性和行為兩個(gè)主要部分。 利
17、用類(lèi)可以實(shí)現(xiàn)數(shù)據(jù)的封裝、隱藏、繼承與派生。 利用類(lèi)易于編寫(xiě)大型宜雜程序,其模塊化程度比c中采用函數(shù)更高。第二節(jié)類(lèi)的定義格式一、類(lèi)的聲明類(lèi)是一種用戶自定義類(lèi)型,聲明形式:class類(lèi)各稱(public:公有成員(外部接口)private:私有成員protected:保護(hù)型成員;(1)類(lèi)的定義格式分為說(shuō)明部分和實(shí)現(xiàn)部分,說(shuō)明部分用來(lái)描述該類(lèi)中的成員,包括 數(shù)據(jù)成員和成員函數(shù),成員函數(shù)使用來(lái)對(duì)數(shù)據(jù)成員進(jìn)行操作的即“方法”,實(shí)現(xiàn)部分用來(lái)定 義各種成員函數(shù),描述這些成員函數(shù)如何實(shí)現(xiàn)隊(duì)數(shù)據(jù)成員的操作。(2)類(lèi)由類(lèi)頭和類(lèi)體兩部分組成。類(lèi)頭由關(guān)鍵字class和類(lèi)各組成,類(lèi)名是由用戶定義 的標(biāo)識(shí)符,類(lèi)頭用來(lái)向便
18、宜系統(tǒng)聲明定義了一個(gè)新的class類(lèi)型;而類(lèi)體是對(duì)類(lèi)的組織形式 進(jìn)行具體的描述,它由訪問(wèn)限制符(private,protccl",public)、數(shù)據(jù)成員和成員函數(shù)組成,整 個(gè)類(lèi)體用一對(duì)大括號(hào)括起來(lái),完整地表達(dá)對(duì)類(lèi)的描述。(3)class允許隱藏內(nèi)部成員,它依靠類(lèi)定義中的3個(gè)訪問(wèn)限制符publicprivatcprolcctcd 來(lái)確定隱藏的程度,它們將類(lèi)體分成3個(gè)大部分。(4)類(lèi)的定義只是定義了某種類(lèi)的組織形式,類(lèi)似于結(jié)構(gòu)體的定義,編譯系統(tǒng)并不給 class類(lèi)型的每個(gè)數(shù)據(jù)成員分配具體的內(nèi)存空間。二、類(lèi)成員的訪問(wèn)控制3個(gè)訪問(wèn)限制符將類(lèi)體分成3個(gè)大部分,每一部分都可以有數(shù)據(jù)成員和成員函
19、數(shù),也 可以只有數(shù)據(jù)成員或只有成員函數(shù),但不同的訪問(wèn)限制符規(guī)定了該部分所具有的訪問(wèn)權(quán)限。1. Public (公有類(lèi)型的成員)在關(guān)鍵字public后面聲明,這一部分是透明的,它的數(shù)據(jù)成員和成員函數(shù)是開(kāi)放的, 即可以由本類(lèi)的成員函數(shù)直接訪問(wèn),也可以由任何外部函數(shù)來(lái)訪問(wèn),它們是類(lèi)與外部的 接口。外部訪問(wèn)是通過(guò)“對(duì)象等公有成員占”進(jìn)行。2. Private (私有類(lèi)型的成員)在關(guān)健宇privalu后面聲明,這一部分象一個(gè)黑盒子,完全隱藏的。它只允許本類(lèi)中 的成員函數(shù)直接訪問(wèn)(既在成員函數(shù)體內(nèi)直呼其各寫(xiě)出成員名),象日期類(lèi)Dak的SdDag) 成員函數(shù)體內(nèi),可以直接寫(xiě)<<ycar=y;mo
20、nth=m,day=d;M等語(yǔ)句;而類(lèi)外部的任何函數(shù)都不 能訪問(wèn)。如不允許編寫(xiě)成”對(duì)象名.私有成員占“形式。如果緊跟在類(lèi)名稱的后面聲明私有成員,則關(guān)鍵字pKM可以省略。3. Protected (保護(hù)類(lèi)型成員)這一部分是半透明的,與private類(lèi)似,其差別表現(xiàn)在繼承與派生時(shí)對(duì)派生類(lèi)的影響 不同。它可由本類(lèi)成員函數(shù)或它的派生類(lèi)成員函數(shù)直接訪問(wèn),而其它的函數(shù)不允許訪問(wèn)此部 分。二、數(shù)據(jù)成員與一般的變量聲明相同,但需要將它放在類(lèi)的聲明體中。class Clockpublic:void SctTimc(int NexvH, int NewM, int NewS);聲明設(shè)置時(shí)鐘的成員函數(shù)void Sh
21、obTimu。;/聲明顯示時(shí)鐘的成員函數(shù)private:int Hour, Minute, Second;void Clock : SctTimc(int NewH, int NrwM, int NewS) /設(shè)置時(shí)鐘的成員函數(shù)在類(lèi)體外的 實(shí)現(xiàn)Hour=NcwH;Minutc=NcwM;Sucond=NcwS;void Clock : ShowTimcO /顯示時(shí)鐘的成員函數(shù)在類(lèi)體外的實(shí)現(xiàn)c()ut<<H()ur<<,:H<<Minutc<<l,:H<<Scc()nd;通常,總是將數(shù)據(jù)成員指定為私肓的,以實(shí)現(xiàn)數(shù)據(jù)隱藏,這些數(shù)據(jù)成員用來(lái)
22、描述該類(lèi) 對(duì)象的屬性,編程者無(wú)法直接訪問(wèn)它們而隱藏起來(lái)。四、成員函數(shù)1)成員函數(shù)說(shuō)明 在類(lèi)中說(shuō)明原形,可以在類(lèi)外給出函數(shù)體實(shí)現(xiàn),并在函數(shù)右前使用類(lèi)各加以限定。 也可以直接在類(lèi)中給出函數(shù)體,形成內(nèi)藤成員函數(shù)。 允許聲明重載函數(shù)和帶默認(rèn)形參值的函數(shù)。(見(jiàn)上面例子中成員函數(shù)的定義)2)內(nèi)聯(lián)成員函數(shù) 為了提高運(yùn)行時(shí)的效率,對(duì)于較簡(jiǎn)單的函數(shù)可以聲明為內(nèi)聯(lián)形式。 內(nèi)聯(lián)函數(shù)體中不要有侵雜結(jié)構(gòu)(如循環(huán)語(yǔ)句和switch語(yǔ)句)0 在類(lèi)中聲明內(nèi)聯(lián)成員函數(shù)的方式:- 將函數(shù)體放在類(lèi)的聲明中。-使用inline關(guān)鍵字。舉例1 :class Pointpublic:void IniinitX,int initY)X=i
23、nitX;Y=initY;int GctXQ return X;int GetYQ return Y;private:ini X,Y;;舉例2class Pointpublic:void lnit(int initXjnt initY);intGctXO;int GctYQ;private:int X,Y;inline void Point:Init(int initX,int initY)X=initX;Y=iiiitY;inline int P()int:GctX()rcUim X;inline int Point:Gct7()return Y;一般將成員函數(shù)指定為公有的,作為該類(lèi)對(duì)象訪問(wèn)
24、私有數(shù)據(jù)成員的一個(gè)接口界面,即 對(duì)象訪問(wèn)私有數(shù)據(jù)成員的一條消息通道提供給外界使用。因此,一個(gè)類(lèi)的對(duì)象只能通過(guò)公有成員函數(shù)訪問(wèn)它的私有數(shù)據(jù)成員,從而隱藏了處理 這些數(shù)據(jù)的具體實(shí)現(xiàn)細(xì)節(jié),使得類(lèi)對(duì)數(shù)據(jù)的描述和類(lèi)提供給外界來(lái)處理數(shù)據(jù)的界面互相獨(dú) 立,這就給出了面向?qū)ο蟮闹匾匦?。如日期?lèi)Date封裝在一個(gè)程序?qū)嶓w內(nèi)(定義日期類(lèi) Date的程序代碼),將它的私有數(shù)據(jù)成員yergonthdiy等隱藏起來(lái),不讓對(duì)象隨意訪問(wèn),對(duì)象要訪問(wèn)這些私有數(shù)據(jù)成員,也只有通過(guò)公有的成員函數(shù)SctDalH)、kLe叩、&吟和PrintDatuO等才能實(shí)現(xiàn)。舉例:Counter類(lèi)用類(lèi)定義一個(gè)計(jì)數(shù)器的抽象數(shù)據(jù)類(lèi)型,計(jì)數(shù)
25、器允許的取值范圍為04294967295的正整 數(shù),可進(jìn)行的操作是計(jì)數(shù)器加1、減1和讀計(jì)數(shù)器的值。數(shù)據(jù)抽象:intvalue;代碼抽象:Counted);給計(jì)數(shù)器賦初值Segment。;/在計(jì)數(shù)器允許取值范圍內(nèi)對(duì)計(jì)數(shù)器加1DccrcmcntO;/在計(jì)數(shù)器允許取值范圍內(nèi)對(duì)計(jì)數(shù)器減1RuadValuc();/讀計(jì)數(shù)器的值Countur();撤消Counter類(lèi)的對(duì)象程序?qū)崿F(xiàn):見(jiàn)面的1L2# include <第三節(jié)對(duì)象的定義一、對(duì)象的定義格式類(lèi)的對(duì)象是該類(lèi)的某一特定實(shí)體,即類(lèi)類(lèi)型的變量。聲明形式類(lèi)占對(duì)象占;例 Clock myClock;訪問(wèn)對(duì)象成員類(lèi)中成員互訪:直接使用成員各。類(lèi)外訪問(wèn):使
26、用“對(duì)象名成員仁”方式訪問(wèn)public屬性的成員。類(lèi)應(yīng)用舉例:#includc<i()strcam>using namespace std;class Clock類(lèi)的聲明略/類(lèi)的實(shí)現(xiàn)"int main。 Clock myClock;myOock.SctTimc(8,30,30);myClock.ShowTimcO;二、對(duì)象指針和對(duì)象引用的定義格式1、對(duì)象指針聲明形式類(lèi)名*對(duì)象指針占;例Point A(5,10);Piont *ptr;ptr=&A;通過(guò)指針訪問(wèn)對(duì)象成員對(duì)象指針各成員占ptr->gctxQ 相當(dāng)于(*ptr).gctxO;對(duì)象指針應(yīng)用舉例:in
27、t main。Point A(5,10);Point *ptr;ptr=&A;int x;x=ptr->GctX();cout<<x<<cndl;return 0;2、對(duì)象引用(聲明形式類(lèi)名&對(duì)象占=巳存在的同類(lèi)對(duì)象各;給已有的對(duì)象另外取一個(gè)別名例:Point A;Pioiit &B=A;通過(guò)對(duì)象引用訪問(wèn)對(duì)象成員使用“對(duì)象引用等成員臺(tái)”方式訪問(wèn)public屬性 的成員(與使用對(duì)象名成員各方式訪問(wèn)是等價(jià)的)。舉例說(shuō)明:#includc<iostrcam>using namespace std;class Clock類(lèi)的聲明略/類(lèi)的
28、實(shí)現(xiàn)嶼int rnainQ Clock Clockl;Clock &myClock=Clockl;/ / 定義對(duì)象引用myClock.SetTime(8,30R);/等同于 Clockl. etTime(8,3030);myClock.ShowTimu();等同于 Clockl. ShowTimcQ;第四節(jié)對(duì)象的初始化一、構(gòu)造函數(shù)1、構(gòu)造函數(shù)說(shuō)明構(gòu)造函數(shù)的作用是在對(duì)象被創(chuàng)建時(shí)使用特定的值構(gòu)造對(duì)象,或者說(shuō)將對(duì)象初始化 為一個(gè)特定的狀態(tài)。在對(duì)象創(chuàng)建時(shí)由系統(tǒng)自動(dòng)調(diào)用。如果程序中未聲明,則系統(tǒng)自動(dòng)產(chǎn)生出一個(gè)默認(rèn)形式的構(gòu)造函數(shù)允許為內(nèi)減函數(shù)、重載函數(shù)、帶默認(rèn)形參值的函數(shù)。構(gòu)造函數(shù)舉例:class
29、 Clockpublic:Clock (ini NcwH, inv NcwM, ini NcwS);構(gòu)造函數(shù)void ScvTimc(int NcwH, inv NcwM, inv NcwS);void ShowTimcQ;private:int Hour,Nlinutr,Second;構(gòu)造函數(shù)的實(shí)現(xiàn):Cl()ck::Ck)ck(int NuxvH, int NewM, ini NrwS)Hour= NewH;Minutc= NewM;Second = NewS;建立對(duì)象時(shí)構(gòu)造函數(shù)的作用:int main。Clock c (0,0,0);隱含調(diào)用構(gòu)造函數(shù),將初始值作為實(shí)參。c-ShowTimc
30、Q;2、復(fù)制構(gòu)造函數(shù)(拷貝構(gòu)造函數(shù))拷貝構(gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù),其形參為本類(lèi)的對(duì)象引用。class類(lèi)名 public:類(lèi)名(形參);構(gòu)造函數(shù)類(lèi)名(類(lèi)占&對(duì)象名);拷貝構(gòu)造函數(shù) ;類(lèi)名::類(lèi)名(類(lèi)占&對(duì)象各)拷貝構(gòu)造函數(shù)的實(shí)現(xiàn) 函數(shù)體 拷貝構(gòu)造函數(shù)舉例1:class Pointpublic:P()int(int xx=O,int yy=0)X=xx; Y=yy;P()int(P(int& p);hit GctXQ return X;int GetYQ ruturnY;private:int X,Y;P()int:P()int (Point& p)x=p.x;
31、Y=p.Y;coutv v”拷貝構(gòu)造函數(shù)被調(diào)用侵制構(gòu)造函數(shù)舉例2:當(dāng)用類(lèi)的一個(gè)對(duì)象去初始化該類(lèi)的另一個(gè)對(duì)象時(shí)系統(tǒng)自動(dòng)調(diào)用拷貝構(gòu)造函數(shù)實(shí)現(xiàn)拷 貝賦值。int mainQ PoimA(l,2);Point B(A); 拷貝構(gòu)造函數(shù)被調(diào)用cout<<B.GctX()<<cndl;復(fù)制構(gòu)造函數(shù)舉例3:若函數(shù)的形參為類(lèi)對(duì)象,調(diào)用函數(shù)時(shí),實(shí)參賦值給形參,系統(tǒng)自動(dòng)調(diào)用拷貝構(gòu)造函 數(shù)。例如:void fiinl (Point p) cout<<p.GctXQ<<cndl;int main。 Point A(l);funl(A); 調(diào)用拷貝構(gòu)造函數(shù)侵制構(gòu)造函數(shù)舉例
32、4:當(dāng)函數(shù)的返回值是類(lèi)對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用拷貝構(gòu)造函數(shù)。例如:Point fun2Q Point A(l,2);return A; /調(diào)用拷貝構(gòu)造函數(shù)int mainQPoint B;B=fun2Q;如果程序員沒(méi)有為類(lèi)聲明拷貝初始化構(gòu)造函數(shù),則編譯器自己生成一個(gè)拷貝構(gòu)造函數(shù)。這個(gè)構(gòu)造函數(shù)執(zhí)行的功能是:用作為初始值的對(duì)象的每個(gè)數(shù)據(jù)成員的值, 初始化將要建立的對(duì)象的對(duì)應(yīng)數(shù)據(jù)成員。二、析構(gòu)函數(shù)完成對(duì)象被刪除前的一些清理工作。在對(duì)象的生存期結(jié)束的時(shí)刻系統(tǒng)自動(dòng)調(diào)用它, 然后再釋放此對(duì)象所屬的空間。如果程序中未聲明析構(gòu)函數(shù),編譯器將自動(dòng)產(chǎn)生一個(gè)默 認(rèn)的析構(gòu)函數(shù)。構(gòu)造函數(shù)和析構(gòu)函數(shù)舉例:#indudc<
33、;iostrcam>using namespace std;class Pointpublic:P()int(int xxjnt yy);-PointO;其它函數(shù)原形private:iniXjntY;P(>int:P()int(int xxjnt yy) X=xx; Y=yy;Point:-Point。/其它函數(shù)的實(shí)現(xiàn)略類(lèi)的應(yīng)用舉例:一周型游泳池如圖所示,現(xiàn)在需在其周?chē)ㄒ粓A型過(guò)道,并在其四周?chē)蠔艡?。?欄價(jià)格為35元/米,過(guò)道造價(jià)為20元/平方米。過(guò)道寬度為3米,游泳池半徑由鍵盤(pán)輸 入。要求編程計(jì)算并輸出過(guò)道和柵欄的造價(jià)。#includc <iostrcam> us
34、ing namespace std;const float PI = 3.14159;const float FciiccPricc = 35;const float ConerctcPricc = 20;/聲明類(lèi)Circle及其數(shù)據(jù)和方法class Circleprivate:float radius;public:Circlc(floal r); 構(gòu)造函數(shù)float CircumfcrcnccO const; 圓周長(zhǎng)float ArcaQ const; 圓面積;/類(lèi)的實(shí)現(xiàn)/構(gòu)造函數(shù)初始化數(shù)據(jù)成員radiusCirclc:Circlc(floal r)radius=r/計(jì)算圓的周長(zhǎng)float
35、 Circlc::CircumfcrcnccO const(return 2 * PI * radius;/計(jì)算圓的面積float Circlc:Arca() constreturn PI * radius * radius;) void main Qfloat radius;float FciiccCost, ConcrctcCost;/提示用戶輸入半徑cout<<MEnter the radius of the pool: M;cin» radius;聲明Circle對(duì)象Circle Pool(radius);Circle P()olRim(radius + 3);/
36、計(jì)算柵欄造價(jià)并輸出FciiccCost = P(x)lRim.CircumfcrenceQ * FcnccPricc;cout << "FencingCost is ¥" << FcnccCost << cndl;/計(jì)算過(guò)道造價(jià)并輸出ConcrctcCost = (PoolRim.ArcaO - P()()I.Arca()*C()ncrcLcPricc;cout << HConcrete Cost is ¥" << ConcrctcCost « ciidl;運(yùn)行結(jié)果Enter
37、 the radius of the pool: 10Fencing Cost is ¥ 2858.85Concrete Cost is Y 4335.39第五節(jié)對(duì)象指針和對(duì)象引用的應(yīng)用一、對(duì)象指針作為函數(shù)的參數(shù)二、對(duì)象引用做函數(shù)的參數(shù)三、This指針1、This指針說(shuō)明隱含于每一個(gè)類(lèi)的成員函數(shù)中的特殊指針。明確地指出了成員函數(shù)當(dāng)前所操作的數(shù)據(jù)所屬的對(duì)象。-當(dāng)通過(guò)一個(gè)對(duì)象調(diào)用成員函數(shù)時(shí),系統(tǒng)先將該對(duì)象的地址賦給this指針,然后調(diào)用成員函數(shù),成員函數(shù)對(duì)對(duì)象的數(shù)據(jù)成員進(jìn)行操作時(shí),就隱含使用了 this指針。例如:Point類(lèi)的構(gòu)造函數(shù)體中的語(yǔ)句:X=xx;Y=yy;相當(dāng)于:this-&
38、gt;X=xx;this->Y=yy;2、指向類(lèi)的非靜態(tài)成員的指針通過(guò)指向成員的指針只能訪問(wèn)公有成員。1)聲明指向成員的指針 聲明指向公有數(shù)據(jù)成員的指針。類(lèi)型說(shuō)明符 類(lèi)名:*指針臺(tái); 聲明指向公有函數(shù)成員的指針)類(lèi)型說(shuō)明符(類(lèi)等產(chǎn)指針聳(參數(shù)表); 指向數(shù)據(jù)成員的指針(說(shuō)明指針應(yīng)該指向哪個(gè)成員)指針占=&類(lèi)等:數(shù)據(jù)成員占;2)通過(guò)對(duì)象名(或?qū)ο笾羔槪┡c成員指針結(jié)合來(lái)訪問(wèn)數(shù)據(jù)成員對(duì)象等*類(lèi)成員指針名或:對(duì)象指針各一>*類(lèi)成員指針各 指向函數(shù)成員的指針初始化指針名=類(lèi)等:函數(shù)成員各;3)通過(guò)對(duì)象名(或?qū)ο笾羔槪┡c成員指針結(jié)合來(lái)訪問(wèn)函數(shù)成員(對(duì)象各產(chǎn)類(lèi)成員指針占X參數(shù)表)或:(對(duì)
39、象指針各一>*類(lèi)成員指針名)(參數(shù)表)舉例說(shuō)明:訪問(wèn)對(duì)象的公有成員函數(shù)的不同方式ini main。主函數(shù) Point A(4,5); 聲明對(duì)象 APoint *pl=&A;聲明對(duì)象指針并初始化聲明成員函數(shù)指針并初始化int (Point:*p_GetX)0=Point:GetX;/ (1)使用成員函數(shù)指針訪問(wèn)成員函數(shù)cout< < (A.*p_GetX) Q < <endl;/ (2)使用對(duì)象指針訪問(wèn)成員函數(shù) cout<<(pl->GctX)Q«cndl;/ (3)使用對(duì)象臺(tái)訪問(wèn)成員函數(shù) c()ut<<A.GctXQ
40、<<ciidl;3、指向類(lèi)的靜態(tài)成員的指針對(duì)類(lèi)的靜態(tài)成員的訪問(wèn)不依賴于對(duì)象可以用普通的指針來(lái)指向和訪問(wèn)靜態(tài)成員例6-1通過(guò)指針訪問(wèn)類(lèi)的靜態(tài)數(shù)據(jù)成員#includc <iostrcam>using namespace std;class Point /Point 類(lèi)聲明public:外部接口Point(int xx=0, int yy=O) X=xx;Y=yy;countP+;構(gòu)造函數(shù) P()int(P()ini &p); 拷貝構(gòu)造函數(shù) int GctXQ return X;int GetYQ return Y;static int countP;靜態(tài)數(shù)據(jù)成員引用
41、性說(shuō)明private: /私有數(shù)據(jù)成員int X,Y;Point :Point(Point &p) X=p.X; Y=p.Y; couniP+; int Poini:c()uniP=0; 靜態(tài)數(shù)據(jù)成員定義性說(shuō)明int main。/主函教聲明一個(gè)int型指針,指向類(lèi)的靜態(tài)成員int *count=&Point:countP;Point A(4,5); 聲明對(duì)象 Acout«MP()int A;,«A.GctX0<<,/,<<A.GctY0;/直接通過(guò)指針訪問(wèn)靜態(tài)數(shù)據(jù)成員cout«M Object id=H<<*co
42、um<<ciidl;Point B(A);/聲明對(duì)象 Bcout«MPoint B,H«B.GctX()«1,H«B.GetY0;直接通過(guò)指針訪問(wèn)靜態(tài)數(shù)據(jù)成員cout<<H Object id=H<<*coiint<<cndl;例6-15通過(guò)指針訪問(wèn)類(lèi)的靜態(tài)函數(shù)成員#includc <iostrcam>using namespace std;class Point /Point 類(lèi)聲明 public:外部接口其它函數(shù)嶼static void GctCQ/靜態(tài)函數(shù)成員cout<<H O
43、bject id=H<<countP<<ciidl;private: 私有數(shù)據(jù)成員int X,Y;static int countP;靜態(tài)數(shù)據(jù)成員引用性說(shuō)明;/函數(shù)實(shí)現(xiàn)略int P()int:c()uniP=O; /靜態(tài)數(shù)據(jù)成員定義性說(shuō)明int mainQ 主函數(shù)/指向函數(shù)的指針,指向類(lèi)的靜態(tài)成員函數(shù)void (*gc)0=Point:GctC;Point A(4,5); /聲明對(duì)象 Acout«MPoint A;,«A.GctX0«H,M«A.GctY0;gcQ; 輸出對(duì)象序號(hào),通過(guò)指針訪問(wèn)靜態(tài)函數(shù)成員Point B(A);/聲
44、明對(duì)象 Bcout<<,TointB;,<<B.GetXO<<,<<B.GetYO;gcO; 輸出對(duì)象序號(hào),通過(guò)指針訪問(wèn)靜態(tài)函數(shù)成員四、遞歸類(lèi)第六節(jié) 動(dòng)態(tài)內(nèi)存分配一、動(dòng)態(tài)申請(qǐng)內(nèi)存操作符newnew類(lèi)型占T (初值列表)功能:在程序執(zhí)行期間,申請(qǐng)用于存放T類(lèi)型對(duì)象的內(nèi)存空間,并依初值列表賦以初值。結(jié)果值:成功:T類(lèi)型的指針,指向新分配的內(nèi)存。失?。? (NULL)二、釋放內(nèi)存操作符deletedelete 指針 P功能:釋放指針P所指向的內(nèi)存。P必須是new操作的返回值。例6-16動(dòng)態(tài)創(chuàng)建對(duì)象舉例#includc<iostrcam>us
45、ing namespace std;class Point public:Point。 X=Y=0; cout<<HDcfault Constructor called.nH;P()int(int xxjnt yy) X=xx; Y=yy; cout<< "Constructor callcd.nH; -Point。 cout«nDcstructor callcd.n° int GctXO return X;int GetYQ return Y;void Movc(int xjnt y) X=x; Y=y; private:int X,Y;
46、int main。 cout<<MStcp ()nc:H<<cndl;Point *ptrl=new Point;delete Ptrl;cout<<uStcp Tw():H<<cndl;Ptrl =nrxv Point。,2);delete Ptrl;return 0;運(yùn)行結(jié)果:Step One:Default Constructor called.Destructor called.Step Two:Constructor called.Destructor called.三、淺拷貝與深拷貝淺拷貝-實(shí)現(xiàn)對(duì)象間數(shù)據(jù)元素的一一對(duì)應(yīng)更制。深拷貝-當(dāng)
47、被曳制的對(duì)象數(shù)據(jù)成員是指針類(lèi)型時(shí),不是復(fù)制該指針成員本身,而是將 指針?biāo)傅膶?duì)象進(jìn)行復(fù)制。例6-20對(duì)象的淺拷貝#includc<iostrcam>using namespace std;class Point類(lèi)的聲明同例6-16/;class ArrayOfPoints類(lèi)的聲明同例6-18/;int mainQ int number;cin>>numbcr;ArrayOFPoints pointsArrayl (number);pointsArrayl.Elcmcnt(0).Movc(5,10);points Array l.Elcmciit(l).M()vc(l 5
48、,20);A rrayC) fPoints points A rray2 (points A rrayl);cout<<HC()py of points A rray 1 :M < < end 1;cout<<HPoint_0 of array2: " <<pointsArray2.Elcmciit(0).GctX0<<* H<<pointsArray2.Elcmcnt(0).GetYO<<cndl;cout<<HPoint_l of array2: H <<p(>int
49、sArray2.Elcmciit( 1).GctXQ<<* H<<p()intsArray2.Elcmcni(l).GctY0<<cndl;points Array l.Elcmcnt(0).M()vc(25,30);points A rray 1 .Element(1) .Move (35,40);cout<<HAftcr the moving of pointsArrayl:1,«endl;cout<<HPoint_0 of array2: H<<pointsArray2.Elcmcnt(0).GctXO
50、171;9 M<<pointsArray2.Elcmciit(0).GctY()<<cndl;cout<<HPoint_l of array2: M<<pointsArray2.Elcmcnt(l).GctX0<<r M<<pointsArray2.Elcmcnt(l).GctY0<<cndl;運(yùn)行結(jié)果如下:Please enter the number of points:2Default Constructor called.Default Constructor called.Copy of points
51、Arrayl:Point_0 of array2: 5, 10Pointof array2: 15, 20After the moving of pointsArrayl:Point_0 of array2: 25, 30Pointof array2: 35, 40Deleting.Destructor called.Destructor called.Deleting.接下來(lái)程序出現(xiàn)異常,也就是運(yùn)行錯(cuò)誤。用圖說(shuō)明淺拷貝(見(jiàn)電子課件)例6-21對(duì)象的深拷貝#includc<iostrcam>using name space std;class Point類(lèi)的聲明同例6-16;cla
52、ss ArravOfPointsJ public:A rrayO fPoints (A rrayO fPoints& points Array);其它成員同例6-18;ArravOfPoints :ArravOfPoints <J(Array()fP()ints& pointsArray) numberOfPoints=p()intsArray.numbcr()fP()ints;points=nrT Pointnumbcr( )fPoints;f()r (int i=0; i<numbcr()fPoints; i+)points H.Movc (points A r
53、ray. Elcmciit(i) .GctXQ,pointsArray.Elcmcnt(i).GctYO);int main。 同例 6-20程序的運(yùn)行結(jié)果如下:Please enter the number of p()ints:2Default Constructor called.Default Constructor called.Default Constructor called.Default Constructor called.Copy of pointsArrayl:Point_0 of array2: 5, 10Pointofarray2: 15, 20After the
54、 moving of pointsArrayl:P()int_0 of array2: 5,10Pointof array2: 15, 20Deleting.Destmetor called.Destructor called.Deleting.Destmetor called.Destructor called.用圖說(shuō)明(見(jiàn)電子課件)第七節(jié)靜態(tài)成員一、靜態(tài)數(shù)據(jù)成員int Point:countP=0;int mainOPoint A(4,5);cout<<nPoiiit A,r<<A.GctX()<<n,H«A.GctYO;A.GctCQ;Poi
55、nt B(A);cout«nPoint B?,«B.GctX0«n;,«B.GctY0;B.GctCO;|二、靜態(tài)成員函數(shù)靜態(tài)成員函數(shù)-類(lèi)外代碼可以使用類(lèi)占和作用域操作符來(lái)調(diào)用靜態(tài)成員函數(shù)。-靜志成員函數(shù)只能引用屬于該類(lèi)的靜態(tài)數(shù)據(jù)成員或靜態(tài)成員函數(shù)。靜態(tài)成員函數(shù)舉例1:#includc<i()strcam>using namespace std;class Application public:static void fQ;static void gQ;private:static int global;int Applicati()n::global =0;void Applicari()n:fQ global=5;void Applicari()n:gQ cout<<global<<cndl;int main。Applica
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)性化反擔(dān)保合同合同新規(guī)定樣本版B版
- 2025年度生態(tài)養(yǎng)殖場(chǎng)承包經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同范本4篇
- 2024年高科技園區(qū)全額承包運(yùn)營(yíng)管理合同3篇
- 二零二五版農(nóng)業(yè)墊資服務(wù)合同樣本2篇
- 2025年度應(yīng)急指揮車(chē)輛設(shè)備采購(gòu)合同4篇
- 教育信息化背景下的中小學(xué)教學(xué)方法變革
- 2025年度珠寶首飾出口貨物運(yùn)輸代理與鑒定服務(wù)合同4篇
- 2025年物流配送與快遞快遞行業(yè)標(biāo)準(zhǔn)化合同范本3篇
- 2025年度動(dòng)物行為研究錄像采集合同4篇
- 2025年度特種工程挖掘機(jī)購(gòu)置與操作培訓(xùn)合同4篇
- 定額〔2025〕1號(hào)文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價(jià)格水平調(diào)整的通知
- 2024年城市軌道交通設(shè)備維保及安全檢查合同3篇
- 【教案】+同一直線上二力的合成(教學(xué)設(shè)計(jì))(人教版2024)八年級(jí)物理下冊(cè)
- 湖北省武漢市青山區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末質(zhì)量檢測(cè)數(shù)學(xué)試卷(含解析)
- 單位往個(gè)人轉(zhuǎn)賬的合同(2篇)
- 科研倫理審查與違規(guī)處理考核試卷
- GB/T 44101-2024中國(guó)式摔跤課程學(xué)生運(yùn)動(dòng)能力測(cè)評(píng)規(guī)范
- 高危妊娠的評(píng)估和護(hù)理
- 2024年山東鐵投集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 2023年高考全國(guó)甲卷數(shù)學(xué)(理)試卷【含答案】
- 數(shù)獨(dú)題目A4打印版無(wú)答案
評(píng)論
0/150
提交評(píng)論