


版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章面向?qū)ο蟮谝还?jié)類與對(duì)象一、類1、類的概念類的聲明class{private://public://公有的成員};2、類的成員在類中可以聲明函數(shù),即成員函數(shù),表示這個(gè)類的行為。比如說(shuō)學(xué)生可以有一個(gè)print函數(shù)打印自己的成績(jī)。3、類的定義主要是對(duì)類中的成員函數(shù)進(jìn)行定義定義類成員函數(shù)的語(yǔ)法:返回值類型類名: 函數(shù)名(參數(shù)列表){函數(shù)體}4、定義類成員函數(shù)的注意事項(xiàng)一定要在函數(shù)名前加上“類名的成員函數(shù)。在類的成員函數(shù)中可以自由的訪問(wèn)該類的其他成員屬性和成員函數(shù)。類成員函數(shù)的定義一般寫在與頭文件對(duì)應(yīng)的.cpp文件中。二、對(duì)象1、對(duì)象的概念從廣義上講,要在內(nèi)存上一段有意義的區(qū)域就稱之為對(duì)象。在是抽象的概念,而對(duì)象是通過(guò)類實(shí)現(xiàn)的具體實(shí)例。比如說(shuō),學(xué)生是類,學(xué)生小明是對(duì)象對(duì)象調(diào)用公有成員:可以通過(guò)運(yùn)算符“:”或者“->”訪問(wèn)對(duì)象里的公有成員this當(dāng)通過(guò)對(duì)象調(diào)用成員函數(shù)傳遞參數(shù)時(shí)比如說(shuō)我們實(shí)際調(diào)用成員函數(shù)如下:roduce();實(shí)際上編譯器認(rèn)為的代碼是:roduce(&tom);2、構(gòu)造函數(shù)和析構(gòu)函數(shù)有申請(qǐng)內(nèi)存空間和釋放內(nèi)存空間的步驟。之后自動(dòng)調(diào)用的函數(shù)。前自動(dòng)調(diào)用的函數(shù)2..1、構(gòu)造函數(shù)構(gòu)造函數(shù)聲明構(gòu)造函數(shù)的聲明需要在類中聲明。構(gòu)造函數(shù)沒有返回值。構(gòu)造函數(shù)的函數(shù)名必須和類名一致。、構(gòu)造函數(shù)的定義構(gòu)造函數(shù)可以直接定義在類內(nèi)部,也可以直接定義在類的內(nèi)部。定義在類內(nèi)部的方式:類名(參數(shù)//函數(shù)}定義在類外部的方式:(參數(shù)列表{}(const)可以用列表初始化的方式對(duì)類成員直接賦值,這樣做會(huì)提高程序運(yùn)行效率。(參數(shù),參數(shù),……):類成員(參數(shù),類成員(參數(shù),……{//注意:列表初始化對(duì)方式只支持將參數(shù)通過(guò)賦值運(yùn)算賦值給類成員。注意:列表初始化成員的順序必須和類成員聲明的順序一致(始化不依賴其他成員變量,即使順序不同也能正確的初始化)、構(gòu)造函數(shù)的特點(diǎn)用于初始化對(duì)象的成員屬性構(gòu)造函數(shù)的函數(shù)名必須與類名一致。構(gòu)造函數(shù)沒有返回值。同一個(gè)類可以有多個(gè)參數(shù)列表不同的構(gòu)造函數(shù)。當(dāng)且僅當(dāng)一個(gè)類沒有聲明構(gòu)造函數(shù)里,編譯器會(huì)自動(dòng)生成一個(gè)無(wú)參無(wú)內(nèi)容的構(gòu)造函數(shù)。、構(gòu)造函數(shù)隱匿調(diào)用55是一個(gè)整數(shù),i是一個(gè)Number類型,這卻可以讓整數(shù)初始化自己定義到類型。因?yàn)樵谶@個(gè)過(guò)程中出現(xiàn)了構(gòu)造函數(shù)隱匿調(diào)用的情況。注意:在構(gòu)造函數(shù)聲明前加上explicit關(guān)鍵字可以關(guān)閉構(gòu)造函數(shù)隱式調(diào)用的功能。、析構(gòu)函數(shù)析構(gòu)函數(shù)的聲明~+類名析構(gòu)函數(shù)沒有返回值析構(gòu)函數(shù)沒有參數(shù)列表析構(gòu)函數(shù)的定義析構(gòu)函數(shù)即可以在類的內(nèi)部定義也可以在類的外部定義類內(nèi)部定義:~類名(參數(shù)列表//類外部定義:類名(參數(shù)列表{/}三、new和deletenew和delete是C++中的兩個(gè)關(guān)鍵字,主要用于在向堆申請(qǐng)或者釋放空間。和C語(yǔ)言中申請(qǐng)堆內(nèi)存不同的是,new和delete在申請(qǐng)/釋放空間的時(shí)候還會(huì)調(diào)用構(gòu)造和析構(gòu)函數(shù)。1、new的使用方法new類名*變量名=new構(gòu)造函數(shù)(參數(shù)列表new類名*變量名=new類[數(shù)組的大]; 此時(shí)會(huì)調(diào)用多次構(gòu)造函數(shù)2、delete的使用方法deletedelete指向?qū)ο蟮闹羔槪?//此時(shí)會(huì)調(diào)用析構(gòu)函數(shù)deletedelete對(duì)象數(shù)組名; //此時(shí)會(huì)調(diào)用多次析構(gòu)函數(shù)delete和delete[]的選擇。四、string類型1、string類型介紹標(biāo)準(zhǔn)庫(kù)類型string表示可變長(zhǎng)的字符序列,使用string類型必須產(chǎn)生包含string.頭文件。String表示字符串,而不是使用C2、string類型的操作使用string類型必須首先包含string定義在命名std#include<string>usingnamespacestd;不過(guò)這些方式之間必須有所區(qū)別使用方法使用方法strings1;strings2(s1);strings3=s2;使用結(jié)果空的字符串s2s1s3s2s.empty();s.size();s[n];s1+s2;s1=s2s1==s2白間隔:cin>>s1>>s2;
s為空返回true,,否則返回false返回s中的字符個(gè)數(shù)返回s中第n個(gè)字符的引用,從0開始返回s1和s2連接后的結(jié)果用s2的副本代替s1中原來(lái)的字符判斷字符串是否相等
使用cin輸入單個(gè)字符串:cin>>s;使用cin輸入多使用getline讀取一整行:getline(cin,line);第二節(jié)封裝一、封裝的概念面向?qū)ο蟮娜筇匦杂蟹庋b,繼承,多態(tài)。封裝主要是指信息隱藏,隱藏對(duì)象的實(shí)現(xiàn)細(xì)節(jié),不讓外部直接訪問(wèn)到。stringstring類型存在。訪問(wèn)控制pubic:表示該成員在成員函數(shù)中直接訪問(wèn),也能通過(guò)對(duì)象訪問(wèn)。private:表示該成員能在成員函數(shù)中直接訪問(wèn),但不能通過(guò)對(duì)象訪問(wèn)。存取器因?yàn)榉庋b的緣故,類里面的成員變量一般會(huì)被定義為private改。為了允許修改或讀取對(duì)象的私有成員,就要提供公開的存取器函數(shù)。二、封裝的目的實(shí)現(xiàn)信息的隱藏。將使用者不需要知道的,或者不應(yīng)該知道的數(shù)據(jù)處理流程隱藏起來(lái),只留下操作接口。保護(hù)對(duì)象數(shù)據(jù)不被任意的使用與更改,欲修改數(shù)據(jù)都要通過(guò)特定接口。1、靜態(tài)成員的概念在些屬性和行為。2、靜態(tài)成員的聲明(在聲明前加static關(guān)鍵字)靜態(tài)成員變量的聲明:static變量類型變量名;靜態(tài)成員函數(shù)的聲明c返回類型函數(shù)名(參數(shù)列表;3、靜態(tài)成員的定義靜態(tài)成員變量的定義:變量類型=靜態(tài)成員函數(shù)的定義:返回值類型(參數(shù)列表4、單例模式(1、餓漢模式:初始化時(shí)直接創(chuàng)建對(duì)象,不會(huì)有線程安全問(wèn)題,2、懶漢模式:初始化時(shí)不創(chuàng)建對(duì)象,在第一次調(diào)用時(shí)創(chuàng)建對(duì)象,存在線程安全問(wèn)題)通過(guò)單例模式可以保證系統(tǒng)中一個(gè)類只有一個(gè)實(shí)例而且該實(shí)例易于外界訪問(wèn)(1、餓漢模式:初始化時(shí)直接創(chuàng)建對(duì)象,不會(huì)有線程安全問(wèn)題,2、懶漢模式:初始化時(shí)不創(chuàng)建對(duì)象,在第一次調(diào)用時(shí)創(chuàng)建對(duì)象,存在線程安全問(wèn)題)第三節(jié)引用一、引用的概念引用(reference)為某個(gè)對(duì)象起了另外一個(gè)名字。引用并非對(duì)象,對(duì)引用進(jìn)行的所有操作都是在與之綁定的對(duì)象上進(jìn)行。二、引用的注意事項(xiàng)法解除。引用類型&引用名=特定的對(duì)象;如:inta=0;int&r=a;引用只能綁定到相同類型的對(duì)象上,如下是錯(cuò)誤的:int&r=314;//3.1是浮點(diǎn)類且是常量,所以不能綁定到int使用引用的目的可以在傳遞函數(shù)時(shí),避免調(diào)用拷貝構(gòu)造函數(shù),提供程序執(zhí)行效率。三、拷貝構(gòu)造函數(shù)拷貝構(gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù),其唯一的形參必須是構(gòu)造對(duì)象的引用。員拷貝給當(dāng)前對(duì)象。以下三種情況會(huì)調(diào)用拷貝構(gòu)造函數(shù):對(duì)象作為函數(shù)參數(shù),以值傳遞的方式傳入函數(shù)體。對(duì)象作為函數(shù)返回值,以值傳遞的方式從函數(shù)返回。對(duì)象用于給另一個(gè)對(duì)象進(jìn)行初始化。四、關(guān)鍵字const1、const引用const與普通引用不同的是,對(duì)常量的引用不能被用作修改它所綁定的的對(duì)象;constintci=1024;cinstint&r1=ci;常量引用僅對(duì)引用可參與的操作做出了限定constconst2、const成員函數(shù)當(dāng)成員函數(shù)不會(huì)更改對(duì)象的任何成員變量時(shí),可以將成員函數(shù)聲明為const:class返回類型函數(shù)名(參數(shù)列表}返回類型(參數(shù)列表}const修飾的對(duì)象和普通對(duì)象不同,它只能調(diào)用const修飾的成員函數(shù),而普通對(duì)象可以調(diào)用任何成員函數(shù)。constconst3、const_cast對(duì)于將常量對(duì)象轉(zhuǎn)換成非常量對(duì)象的行為,一般稱其為“去掉constconst象是一個(gè)常量,再使用const_cast執(zhí)行寫操作就會(huì)生產(chǎn)未定義的后果。使用方法:constchar*pc;char*p=const_cast<char*>(pc);char&r=const_cast<char&>(*pc);第四節(jié)重載一、重載的概念編程中重載是指函數(shù)名相同,函數(shù)的參數(shù)列表不同(包括參數(shù)個(gè)數(shù)和參數(shù)類型返回類型可同可不同。二、運(yùn)算符重載的概念據(jù)類型。重載的運(yùn)算是具有特殊名字的函數(shù):它們的名字由關(guān)鍵字operator和其后要定義的運(yùn)算符號(hào)共同組成:返回類型operator(參數(shù)列表三、運(yùn)符符重載為函數(shù)運(yùn)行符重載為函數(shù)的參數(shù)數(shù)量應(yīng)與該運(yùn)算符的運(yùn)算對(duì)象數(shù)量一樣多參數(shù),二元有兩個(gè)參數(shù)。參數(shù)的類型應(yīng)該根據(jù)運(yùn)算符要操作的對(duì)象類型決定。比如說(shuō),我們希望重載運(yùn)算符支持 CompleNumber的加法,則運(yùn)算符會(huì)操作兩個(gè)CompleNumber對(duì)象:CompleNumberc1c2;CompleNumberc3=c1+c2;以下運(yùn)算符是不能重載的:條件運(yùn)算符 (?)作用域運(yùn)算符 ()成員指針運(yùn)行符(.*)四、運(yùn)算符重載為成員函數(shù)(也就是this指針運(yùn)算符重載為函數(shù)的參數(shù)數(shù)量少一個(gè)。1、默認(rèn)參數(shù)的概念以省略含有默認(rèn)值的參數(shù)。例如:voidfunc(inti=0;intj=1);注意事項(xiàng):默認(rèn)參數(shù)的值是嚴(yán)格按照從右至左的順序指定。默認(rèn)參數(shù)的值只能在聲明或定義中一處指定,不能同時(shí)指定默認(rèn)參數(shù)和函數(shù)重載會(huì)出現(xiàn)二義性問(wèn)題,如:voidfunc();和voidfunc(inti=0);第五節(jié)友元一、友元的概述通過(guò)友元,一個(gè)不同函數(shù)或另一個(gè)類中的成員函數(shù)可以訪問(wèn)類中的非公有成員。二、友元類一樣,只是友元類需要在訪問(wèn)私有成員的類中額外聲明,并豐聲明前加上friend關(guān)鍵字。友元類的聲明:friendclass類名:第六節(jié)內(nèi)聯(lián)函數(shù)一、內(nèi)聯(lián)函數(shù)的介紹inline使用函數(shù)體替換調(diào)用處的函數(shù)名。二、內(nèi)聯(lián)函數(shù)的注意事項(xiàng)switch1~5在類結(jié)構(gòu)內(nèi)部定義的函數(shù)默認(rèn)為內(nèi)聯(lián)函數(shù)。內(nèi)聯(lián)函數(shù)的聲明定義寫在頭文件中。inline第七節(jié)繼承一、繼承1、繼承的概念繼承是類與類之間的一種關(guān)系。如果類A繼承于類,則把類B稱為基類(父類A(子類。is-a當(dāng)繼承于食肉動(dòng)物。2、繼承的目的要把基類相同基類相同功能的代碼再寫一遍。現(xiàn)多個(gè)派生類3、簡(jiǎn)單的繼承公有繼承的子類聲明:二、繼承相關(guān)1、對(duì)象的構(gòu)造和析構(gòu)過(guò)程任何對(duì)象在創(chuàng)建后都會(huì)調(diào)用構(gòu)造函數(shù),在銷毀之間才會(huì)調(diào)用析構(gòu)函數(shù)。因?yàn)榕缮悓?duì)象除了本身成員之外還擁有基類的成員父類的構(gòu)造函數(shù),銷毀時(shí)調(diào)用父類的析構(gòu)函數(shù)。2、派生類的構(gòu)造函數(shù)在定義派生類的構(gòu)造函數(shù)是需要知道父類的構(gòu)造函數(shù)構(gòu)造函數(shù)。派生類構(gòu)造函數(shù)定義:3、訪問(wèn)控制符private:只有能在當(dāng)前類成員函數(shù)中能夠訪問(wèn)。protected:只有在當(dāng)前類成員函數(shù)和子類成員函數(shù)中能夠訪問(wèn)。public訪問(wèn)。4、受保護(hù)繼承和私有繼承保護(hù)成員。有成員。三、虛擬繼承虛擬繼承是多重繼承中特有的概念,是為了解決多重繼承出現(xiàn)的菱形繼承。物中的成員。繼承體系中只會(huì)出現(xiàn)一份動(dòng)物的實(shí)例。1、虛函數(shù)的概念虛函數(shù)是指在類成員函數(shù)聲明前加上virtual當(dāng)基類的成員函數(shù)無(wú)法滿足子類要求的時(shí)候子類改寫,虛函數(shù)的聲明方式如下:2、虛函數(shù)列表當(dāng)一個(gè)類中出現(xiàn)了虛函數(shù)時(shí),編譯器會(huì)為這個(gè)類的對(duì)象多分配4放虛函數(shù)列表。在虛函數(shù)列表中存放了所有虛函數(shù)的函數(shù)指針。當(dāng)對(duì)象調(diào)用虛函數(shù)時(shí),會(huì)優(yōu)先從虛函數(shù)列表中尋找匹配的函數(shù)指針進(jìn)行調(diào)用。3、函數(shù)重寫派生類可以對(duì)基類的虛函數(shù)進(jìn)行重新聲明定義,這種行為稱之為函數(shù)重寫。函數(shù)重寫會(huì)將派生類對(duì)象繼承自基類的虛函數(shù)列表部分進(jìn)行重寫。四、純虛函數(shù)和抽象類1、純虛函數(shù)的概念純虛函數(shù)是只需要聲明,不需要定義的虛函數(shù)。聲明方法如下:2、抽象類的概念有純虛函數(shù)的類被稱為抽象類。抽象類無(wú)法通過(guò)構(gòu)造函數(shù)直接生成對(duì)象,只能夠派生類繼承。象類。3、多態(tài)的概念 在面向?qū)ο笳Z(yǔ)言中,接口的多種不同實(shí)現(xiàn)方式即為多態(tài)。 多態(tài)能允許將父對(duì)象設(shè)置成一個(gè)或更多個(gè)它的子對(duì)象的技術(shù)據(jù)當(dāng)前賦值給它的子對(duì)象的特性進(jìn)行動(dòng)作。 引用就可以擁有派生類的特性。4、通過(guò)函數(shù)重寫實(shí)現(xiàn)多態(tài)實(shí)現(xiàn)多態(tài)的步驟: 第一步,派生類重寫基類的虛函數(shù)。 第二步,基類的指針或引用綁定到派生類的對(duì)象上。 第三步,通過(guò)基類的指針或引用調(diào)用所綁定派生類重寫過(guò)的函數(shù)。知識(shí)點(diǎn)總結(jié)1、編程思想C++語(yǔ)+編程思想->面向?qū)ο螅∣O:object 面向?qū)ο?lt;->面向過(guò)程抽象<->具體面向?qū)ο螅簝?yōu)化、維護(hù)、升級(jí)、、并行開發(fā)、臭味低、耦合低c++:兼容C,升級(jí)版,基于面向?qū)ο笤O(shè)計(jì)出的開發(fā)語(yǔ)言。面向?qū)ο螅悍庋b、繼承、抽象、多態(tài)2、C++中標(biāo)準(zhǔn)庫(kù)頭文件:iostreamIO如果使用C標(biāo)準(zhǔn)庫(kù),比如stdio.h,添加頭文件時(shí),可以直接#include<stdio.h>#include<cstdio>->最好這樣寫,.h去掉,前面加C3、常見運(yùn)算符cout,endl,””->對(duì)象<<>> ->流運(yùn)算符cout=>consoleout 臺(tái)會(huì)將收到的數(shù)據(jù),輸出出去。endl =>endline:‘\n’+fflush;fflush =>給到哪,哪就清緩cin =>consolein輸入控制臺(tái)流運(yùn)算符的右值類型:基本數(shù)據(jù)類型,指針都可以。4、關(guān)于類用,無(wú)法直接全局調(diào)用。=>this1.this指針類型:該類類型的指針常量 =>類*constthis;2.傳參怎么傳:調(diào)用對(duì)象的地址。5、修改符訪問(wèn)限制符:publicprivateprotected公開,私有,受保護(hù),對(duì)類的成員進(jìn)行修飾,成員的訪問(wèn)權(quán)限發(fā)生變化公開成員:可以直接通過(guò)對(duì)象全局訪問(wèn),也可以在類的成員函數(shù)內(nèi)部,通過(guò)this指針訪問(wèn)。this指針訪問(wèn)。私有成員訪問(wèn):公開接口進(jìn)行訪問(wèn),常見訪問(wèn)get/set6、引用引用:變量的別名,當(dāng)引用變量a,綁定實(shí)際變量b之后,對(duì)a所有的操作,即對(duì)b操作
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 重慶藝術(shù)工程職業(yè)學(xué)院《科技信息檢索》2023-2024學(xué)年第一學(xué)期期末試卷
- 自然辯證法概論(視頻課)知到課后答案智慧樹章節(jié)測(cè)試答案2025年春安徽農(nóng)業(yè)大學(xué)
- 山西林業(yè)職業(yè)技術(shù)學(xué)院《材料分析測(cè)試技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 達(dá)州中醫(yī)藥職業(yè)學(xué)院《體育場(chǎng)地與設(shè)施》2023-2024學(xué)年第一學(xué)期期末試卷
- 河北石油職業(yè)技術(shù)學(xué)院《生物信息學(xué)實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)春汽車工業(yè)高等??茖W(xué)?!兜谌轿锪鞴芾怼?023-2024學(xué)年第一學(xué)期期末試卷
- 晉中職業(yè)技術(shù)學(xué)院《學(xué)科前沿講座》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025屆海南省魯迅中學(xué)高三下學(xué)期一??荚囉⒄Z(yǔ)試題含解析
- 江蘇室內(nèi)綠化施工方案
- 古人重視品德的名言
- 校企共建實(shí)驗(yàn)室備忘錄
- 好書 讀書分享長(zhǎng)安的荔枝
- 2024年陜西省高中學(xué)業(yè)水平合格考數(shù)學(xué)試卷試題(含答案)
- 2023年新高考河北卷生物高考真題解析(參考版)
- 河北省建設(shè)項(xiàng)目概算其他費(fèi)用定額
- 起重吊裝風(fēng)險(xiǎn)辨識(shí)及防范措施
- 2024年江西電力職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- 宿舍衛(wèi)生管理培訓(xùn)
- 2024-2030年中國(guó)循環(huán)水加藥裝置行業(yè)市場(chǎng)現(xiàn)狀分析及競(jìng)爭(zhēng)格局與投資發(fā)展研究報(bào)告
- 【微軟并購(gòu)動(dòng)視暴雪行為動(dòng)因及并購(gòu)后發(fā)展戰(zhàn)略探究10000字(論文)】
- 水質(zhì)采樣記錄表
評(píng)論
0/150
提交評(píng)論