C++程序設(shè)計(jì)知識(shí)提綱_第1頁
C++程序設(shè)計(jì)知識(shí)提綱_第2頁
C++程序設(shè)計(jì)知識(shí)提綱_第3頁
C++程序設(shè)計(jì)知識(shí)提綱_第4頁
C++程序設(shè)計(jì)知識(shí)提綱_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第一章概論C+取序的基本元素:關(guān)鍵字、標(biāo)識(shí)符、運(yùn)算符、標(biāo)點(diǎn)符號(hào)算法、程序和語言算法和程序算法:對(duì)數(shù)據(jù)處理操作的步驟。低級(jí)語言和高級(jí)語言機(jī)器語言:由二進(jìn)制碼組成的指令。匯編語言:用助記符來表示每一條機(jī)器指令。高級(jí)語言:與人類習(xí)慣語言相近的程序設(shè)計(jì)語言。面向過程和面向?qū)ο蟮某绦蛟O(shè)計(jì)面向過程的程序設(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)C++程序的寫生和運(yùn)行C++程序簡(jiǎn)例main()是主函數(shù)。程序總是從main函數(shù)開始執(zhí)行。原型:main(intargc,char*argv[])標(biāo)識(shí)符:給變量等實(shí)體所取的名字統(tǒng)稱為標(biāo)識(shí)符,只能以下劃線或字母開頭關(guān)鍵字:C+”具有特定含義的詞語句:程序中語句要用“;”結(jié)尾,分號(hào)是語句的組成部分。C++程序從寫出到運(yùn)行幾個(gè)步驟源程序(.cpp):用C+郵言寫出的程序。程序代碼(.obj):源程序經(jīng)過編譯程序翻譯,成為用機(jī)器語言表示的目標(biāo)程序??蓤?zhí)行文件(.exe):把各個(gè)相關(guān)文件鏈接起來形成的文件。第二章基本數(shù)據(jù)、別名和指針基本數(shù)據(jù)數(shù)據(jù)是程序處理的對(duì)象而存儲(chǔ)于內(nèi)存空間中。存間的大小與數(shù)據(jù)類型有關(guān),數(shù)據(jù)類型分為基本數(shù)據(jù)類型和導(dǎo)出數(shù)據(jù)類型基本數(shù)據(jù)類型數(shù)據(jù)類型:基本數(shù)據(jù)類型、導(dǎo)出數(shù)據(jù)類型

基本數(shù)據(jù)類型:字符型、整型、實(shí)型、雙精度型、無值型導(dǎo)出數(shù)據(jù)類型:數(shù)組、指針、結(jié)構(gòu)體、共用體、類、枚舉整型:計(jì)算機(jī)內(nèi)部是以二進(jìn)制補(bǔ)碼形式表示數(shù)據(jù)類型存間(字節(jié))長度(位)字節(jié))基本數(shù)據(jù)類型:字符型、整型、實(shí)型、雙精度型、無值型導(dǎo)出數(shù)據(jù)類型:數(shù)組、指針、結(jié)構(gòu)體、共用體、類、枚舉整型:計(jì)算機(jī)內(nèi)部是以二進(jìn)制補(bǔ)碼形式表示數(shù)據(jù)類型存間(字節(jié))長度(位)字節(jié))長度(位)字符 char18unsignedchar18整數(shù) 短整型 short216Unsignedshort216整型 int432Unsignedint432長整型 long432Unsignedlong432實(shí)數(shù) float432 -3.41038Double864-1.710308Longdouble864-1.7-308 30810~1.7X10字符型:ASII碼有128個(gè)字符,0-31和128為不可見字符(控制字符)浮點(diǎn)型:小數(shù)形式、指數(shù)形式取值范圍-128~1270~225-32768~327670~65535-231~(231-1)0~(232-1)-231~(231-1)0~(232-1)X10-38~3.4XX10-308~1.7XX數(shù)據(jù)變量的存間、長度和取值范圍數(shù)據(jù)變量的存間:儲(chǔ)存變量的內(nèi)存空間。整數(shù)存儲(chǔ)安置規(guī)則:變量值的高位字節(jié)存于高地址的內(nèi)存單元中,低位字節(jié)存于低地址的內(nèi)存單元中。存間長度運(yùn)算符:sizeof(某變量類型)變量的長度:變量的字節(jié)數(shù)X8=變量值的二進(jìn)制位數(shù)。數(shù)據(jù)變量的表示整數(shù)的表示:八進(jìn)制:以0開頭。十六進(jìn)制:以0x或0X開頭后綴L或l為long型;后綴U或u為unsignedint型;同時(shí)后綴L和U為unsignedlong型。實(shí)數(shù)的表示一般形式:科學(xué)計(jì)數(shù)法:0.75e+9表示0.75X109,小數(shù)點(diǎn)前留一位為標(biāo)準(zhǔn)科學(xué)計(jì)數(shù)法;E可大寫可小寫,前后必須有數(shù)字。后綴F或f為float型,無后綴默認(rèn)為double型。字符的表示:對(duì)于可以通過鍵盤輸入的、可顯示的字符,可用單引號(hào)闊氣來;對(duì)于不可以通過鍵盤輸入的,不可顯示的字符,用轉(zhuǎn)義字符‘’;對(duì)ASCII碼中任一字符,都可用反斜杠后跟一個(gè)八進(jìn)制或十六進(jìn)制數(shù)用單引號(hào)括起來表示‘\101’和‘\x41’都表示字符A。字符可以對(duì)整型變量賦值,ASCII碼范圍內(nèi)的整數(shù)也可以對(duì)字符型變量賦值,字符進(jìn)行運(yùn)算時(shí),以其ASCII碼值參與運(yùn)算。字符串常量及其值字符串常量是用一對(duì)英文雙引號(hào)括起來的不可改變的字符序列。數(shù)據(jù)變量的聲明和賦值數(shù)據(jù)變量的訪問別名別名變量概念別名變量的聲明用別名對(duì)變量進(jìn)行訪問指針地址概念指針變量概念指針變量的聲明和賦值用指針對(duì)變量進(jìn)行訪問C+鋤態(tài)內(nèi)存分配:new類型名(初始值列表)//開辟存儲(chǔ)類型空間new類型名[下標(biāo)表達(dá)式1][下標(biāo)表達(dá)式2]//創(chuàng)建儲(chǔ)存數(shù)組的空間new類名(初始值列表)//創(chuàng)建對(duì)象如果內(nèi)存開辟失敗,對(duì)應(yīng)指針應(yīng)該為NULL這是判斷內(nèi)存是否成功被開辟的標(biāo)志:int*pnValue;pnValue=newint(3);if(pnValue==NULL)exit(0);開辟空間后一定要保持指針始終指向給內(nèi)存對(duì)于動(dòng)態(tài)數(shù)組中的操作:一是利用下標(biāo)操作,二是另外聲明一個(gè)指針來遍歷數(shù)組。動(dòng)態(tài)內(nèi)存開辟后,最好進(jìn)行初始化:memseH指針名,初始值,開辟空間的總字節(jié)數(shù));sizeof(*p)計(jì)算出的是指針?biāo)純?nèi)存的大小,并不是指向內(nèi)存空間的大小利用delete釋放指針后將指針置為NULL;delete[]plArray;plArray=NULL;C風(fēng)格的動(dòng)態(tài)內(nèi)存分配方法:開辟動(dòng)態(tài)內(nèi)存malloc函數(shù):void*malloc(size_tsize)包含頭文件:<stdlib.h>、<malloc.h>size_t是需要分配內(nèi)存的字節(jié)數(shù)如果開辟內(nèi)存成功,返回void類型指針;如果失敗返回空指針如果需要的不是void類型內(nèi)存空間,需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換釋放函數(shù)free:voidfree(void*pointer);函數(shù)間的動(dòng)態(tài)內(nèi)存?zhèn)鬟f:利用引用類型參數(shù)傳遞動(dòng)態(tài)內(nèi)存(推薦使用):voidGetMen(char*&p,size_tsize);利用二級(jí)指針參數(shù)傳遞動(dòng)態(tài)內(nèi)存:voidGetMen(char**p,size_tsize);利用函數(shù)返回至來傳遞動(dòng)態(tài)內(nèi)存char*GetMen(size_tsize);二級(jí)指針變量概念使用指針要特別注意指針的指向淺復(fù)制容易產(chǎn)生野指針,深復(fù)制會(huì)產(chǎn)生大量資源智能指針對(duì)數(shù)據(jù)變量的保護(hù)用const聲明常值數(shù)據(jù)變量#define宏定義(預(yù)處理命令):#define常量名值const數(shù)據(jù)類型變量名=常值數(shù)據(jù)類型const變量名=常值常量的值保持不變,不允許再賦值在聲明中用const對(duì)指針變量進(jìn)行限定聲明常值指針變量:數(shù)據(jù)類型*const指針變量名=常地址;指針變量的值保持不變,指向恒定聲明只讀指針變量:const數(shù)據(jù)類型*指針變量名;指針?biāo)钢豢勺x不可寫聲明常值只讀指針變量:const數(shù)據(jù)類型*const指針變量名=常地址;在聲明中用const對(duì)別名變量進(jìn)行限定聲明只讀別名變量:const數(shù)據(jù)類型&別名變量名=變量名第三章數(shù)據(jù)的運(yùn)算和簡(jiǎn)單的輸入輸出運(yùn)算運(yùn)算符優(yōu)先級(jí):圓括弧是一級(jí)優(yōu)先二級(jí)優(yōu)先全是單目運(yùn)算符,可稱單目塊3~5級(jí)可稱為加減乘除塊。其中左右位移運(yùn)算相當(dāng)于乘和除6、7級(jí)優(yōu)先可稱為關(guān)系塊8~12級(jí)優(yōu)先可稱為邏輯塊,其中8~10是按位邏輯塊13~15優(yōu)先級(jí)可稱為條件、賦值、逗號(hào)塊zeof()運(yùn)算符和sizeof()表達(dá)式算數(shù)運(yùn)算符和算數(shù)表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式位運(yùn)算符和位運(yùn)算表達(dá)式條件運(yùn)算符和條件表達(dá)式賦值運(yùn)算符和賦值表達(dá)式逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式基本數(shù)據(jù)混合運(yùn)算是數(shù)據(jù)類型的轉(zhuǎn)換隱性類型轉(zhuǎn)換賦值運(yùn)算中的隱性類型轉(zhuǎn)換如果有操作數(shù)長度長,而左操作數(shù)長度短,賦值時(shí)按低位優(yōu)先的原則將右操作數(shù)賦入左操作數(shù)存間,存間裝滿為止,剩下的高位數(shù)被舍棄。強(qiáng)迫類型轉(zhuǎn)換語法形式:類型說明符(表達(dá)式);(類型說明符)表達(dá)式;(類型說明符)(表達(dá)式)指針的增減運(yùn)算簡(jiǎn)單的輸入輸出運(yùn)算

提取運(yùn)算符>>和插入運(yùn)算符<<提取表達(dá)式和插入表達(dá)式基本數(shù)據(jù)的輸入和輸出字符串的輸出想要輸出一條字符串,只要將字符串的首字符指針作為插入運(yùn)算符<<的右操作數(shù)就行:cout<<”dkfjs”;//雙引號(hào)括起來的字符串可以看做是一個(gè)字符串表達(dá)式,字符串表達(dá)式的值就是字符串的周字符指針char*p=“skdjf”;cout<<p;簡(jiǎn)單輸入輸出的格式控制輸入/輸出的默認(rèn)格式整數(shù)按十進(jìn)制數(shù)出實(shí)數(shù)按十進(jìn)制浮點(diǎn)輸出,有效數(shù)字6位當(dāng)實(shí)數(shù)的整數(shù)部分大于或等于7位時(shí),則轉(zhuǎn)化為科學(xué)計(jì)數(shù)法輸出。當(dāng)小數(shù)4個(gè)或4個(gè)以上零,則轉(zhuǎn)換為科學(xué)計(jì)數(shù)法輸出以上輸出寬度(域?qū)捤甲址麛?shù))均默認(rèn)為0,靠右對(duì)齊若實(shí)際輸出字符大于域?qū)挄r(shí),按實(shí)際字符輸出3.13.2用格式控制符對(duì)格式進(jìn)行控制控制項(xiàng)目控制符功能有效期效效長長效效效效效長效效效長長效效效效效長效長效長效短效短效iostream無iomanipHex輸入輸出整數(shù)時(shí)用十六進(jìn)制表示0ct輸入輸出整數(shù)時(shí)用八進(jìn)制表示換行endl輸出時(shí)換行并進(jìn)行刷新域?qū)抯etw(int)出數(shù)據(jù)的域?qū)?,靠右顯示余項(xiàng)空格填充填充setfill(char)對(duì)輸出域余用字符填充精度setprecision(int)設(shè)置實(shí)數(shù)輸出精度程序的流程控制程序流程的基本結(jié)構(gòu)選擇結(jié)構(gòu)語句循環(huán)結(jié)構(gòu)語句4.4.1break語句.2continue語句.3goto語句.4abort函數(shù)和exit函數(shù)Abort函數(shù)和exit函數(shù)都是C+而準(zhǔn)庫cstdlib中的兩個(gè)函數(shù)。Voidabort()Voidexit(intstatus)這兩個(gè)函數(shù)的作用都是終止整個(gè)程序的運(yùn)行,將控制返還給操作系統(tǒng)。但前者僅僅結(jié)束程序的運(yùn)行,不做任何善后工作。而后者在終止前做些收尾工作,例如關(guān)閉打開的文件、寫完緩沖輸出的內(nèi)容、收回變量存間等。參數(shù)status置0表示正常退出,置1則表示異常退出第五章函數(shù)函數(shù)的概念函數(shù)的概述函數(shù)的定義當(dāng)返回值的類型為int型時(shí),可省略標(biāo)識(shí)符對(duì)函數(shù)的調(diào)用被調(diào)函數(shù)的函數(shù)原型聲明函數(shù)原型聲明中的形式參數(shù)表,只要求按函數(shù)定義中各形參的類型、次序、個(gè)數(shù)寫正確就行,至于形參的名稱不寫甚至寫錯(cuò)也不要緊。函數(shù)的調(diào)用函數(shù)調(diào)用流程三步驟:中斷、轉(zhuǎn)移、返回。在中斷時(shí),把當(dāng)時(shí)的現(xiàn)場(chǎng)數(shù)據(jù)和地址儲(chǔ)存起來。在返回時(shí)把現(xiàn)場(chǎng)數(shù)據(jù)和地址取出。根據(jù)這地址就能精確的回到原流程處函數(shù)的遞歸調(diào)用要形成函數(shù)的遞歸調(diào)用,這遞歸關(guān)系和遞歸終止條件二者缺一不可函數(shù)內(nèi)外變量的作用域和生存期函數(shù)內(nèi)的塊作用域:用花括號(hào)括起來的部分稱為一個(gè)塊,在塊內(nèi)聲明的變量,其作用域開始于變量的聲明處,結(jié)束于塊的結(jié)尾處。在同一作用域內(nèi),不能聲明同名變量在沒有互相包含關(guān)系的不同的作用域中,允許聲明同名變量。它們各在各的作用域內(nèi)使用,互不干擾。在互相間又包含關(guān)系的作用域中,也允許聲明同名變量。不過,在使用同名變量時(shí),在被包含的內(nèi)層作用域中,只能使用內(nèi)層作用域所聲明的同名變量同時(shí)自動(dòng)覆蓋掉外層的同名變量?;蛘哒f,在內(nèi)層中,對(duì)外層的同名變量是不可見的。這種情況也可簡(jiǎn)稱為“內(nèi)層同名優(yōu)先”。和for語句有關(guān)的作用域:若在for語句的圓括弧內(nèi)聲明了某變量,則該變量就如同在for語句所在的作用域內(nèi)聲明一樣,該變量作用域從聲明處開始至for語句所在作用域結(jié)束為止。若在for語句的循環(huán)體內(nèi)聲明了某變量,則該變量的作用域就只在循環(huán)體范圍內(nèi),作用域從聲明處開始至循環(huán)體結(jié)束處為止。文件作用域:在所有函數(shù)值為所聲明的變量稱為全局變量。全局變量的作用域是從聲明處開始到文件結(jié)束處為止。這個(gè)作用域稱為文件作用域。如果要在局部變量的作用域內(nèi)訪問與局部變量同名的全局變量,則可在同名變量前加域運(yùn)算符“::”來進(jìn)行訪問。5.3.2生存期靜態(tài)生存期:從變量的作用域開始,變量因系統(tǒng)配給空間而開始存活。如果在作用與結(jié)束時(shí),存間未被收回而仍然占用著。要一直等到主函數(shù)結(jié)束時(shí),也就是整個(gè)程序結(jié)束時(shí),系統(tǒng)才收回該變量的存間,從而使該變量消亡。對(duì)于局部變量,若在其聲明語句的類型前面加static,則該變量的生存期就是靜態(tài)生存期。變量就是靜態(tài)變量。對(duì)于全局變量,無需加static,他天生就是靜態(tài)變量。因?yàn)樗緛砭褪菑穆暶魈庨_始獲得存間而存活,直到主函數(shù)結(jié)束,存間才被收回而消亡靜態(tài)變量必須在聲明語句中設(shè)置初值。如未設(shè)置初值,則系統(tǒng)會(huì)自動(dòng)設(shè)置初值0。靜態(tài)變量的聲明語句只執(zhí)行一次。函數(shù)內(nèi)外的數(shù)據(jù)傳遞函數(shù)通過參數(shù)進(jìn)行數(shù)據(jù)傳遞效達(dá)實(shí)名變量于主調(diào)函效達(dá)所指變量于主調(diào)函(單向傳遞)效達(dá)實(shí)名變量于主調(diào)函效達(dá)所指變量于主調(diào)函(單向傳遞)數(shù)之中。(雙向傳遞)參數(shù)的地址傳遞:訪問指針?biāo)赣诒徽{(diào)函數(shù)之內(nèi),數(shù)之中。(雙向傳遞)參數(shù)的值傳遞:主調(diào)函數(shù)將數(shù)據(jù)傳遞給被調(diào)函數(shù)。具有默認(rèn)值的參數(shù)傳遞具有默認(rèn)參數(shù)的函數(shù):默認(rèn)參數(shù)的說明必須出現(xiàn)在函數(shù)調(diào)用之前,不可重復(fù)說明。參數(shù)的默認(rèn)值可以使表達(dá)式,但表達(dá)式必須有確定的值。默認(rèn)參數(shù)可以有多個(gè),但必須在參數(shù)表中靠右邊排列。同一個(gè)函數(shù)在不同的作用域內(nèi),可提供不同的默認(rèn)參數(shù)值。(在不同作用域中進(jìn)行聲明)函數(shù)通過返回值進(jìn)行數(shù)據(jù)傳遞返回一個(gè)基本數(shù)據(jù)值返回一個(gè)靜態(tài)變量的地址:靜態(tài)變量延長了變量的生存期,但作用域并未改變。所以可以通過訪問指針?biāo)?,來訪問變量名失效的靜態(tài)變量返回一個(gè)靜態(tài)變量的別名:在主調(diào)函數(shù)中,函數(shù)調(diào)用式可作為該靜態(tài)變量的別名來使用函數(shù)通過全局變量傳遞數(shù)據(jù)除非特別需要,一般不使用全局變量?jī)?nèi)聯(lián)函數(shù)和函數(shù)的重載內(nèi)聯(lián)函數(shù)(在定義函數(shù)時(shí),在前面冠以關(guān)鍵字inline):內(nèi)聯(lián)函數(shù)也應(yīng)該定義在前,使用在后。在C+”,除函數(shù)體內(nèi)含有循環(huán)、switch分支和復(fù)雜嵌套的if語句外,所有函數(shù)均可定義為內(nèi)聯(lián)函數(shù)。用戶確定函數(shù)的內(nèi)聯(lián),只是一個(gè)“內(nèi)聯(lián)”的建議。到時(shí)候是否真的照“內(nèi)聯(lián)”執(zhí)行,要由編譯器決定。函數(shù)重載:形參類型不同;形參個(gè)數(shù)不同。用指針對(duì)函數(shù)進(jìn)行操作處理函數(shù)指針函數(shù)地址:首內(nèi)存單元地址叫做函數(shù)的入口地址,簡(jiǎn)稱為函數(shù)地址函數(shù)名就是函數(shù)地址函數(shù)指針變量:專門用來存放函數(shù)地址的變量。函數(shù)指針的聲明和賦值聲明一個(gè)函數(shù)指針變量時(shí),需要說明所指函數(shù)的類型和形參表。一般形式:數(shù)據(jù)類型(*函數(shù)指針名)(形參表);函數(shù)指針變量的初始化和賦值:Doublefun(int,int,double);Double(*p)(int,int,double)=fun;Doublefun(int,int,double);Double(*p)(int,int,double);P=fun;Doublefun(int,int,double),(*p)(int,int,double)=fun;用函數(shù)指針調(diào)用函數(shù)用函數(shù)指針調(diào)用函數(shù)的形式和用函數(shù)名調(diào)用函數(shù)的形式是一致的,只不過是把函數(shù)名換成函數(shù)指針名:函數(shù)指針名(實(shí)際參數(shù)表);用通用函數(shù)處理函數(shù)主函數(shù)以具體函數(shù)的地址為實(shí)參調(diào)用通用函數(shù),而通用函數(shù)則以同類型函數(shù)指針變量作為形參,來接納具體函數(shù)的地址。函數(shù)的多文件組織模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì):自頂而下,逐步細(xì)化,模塊化。原文件之間的訪問源文件之間對(duì)全局變量的訪問:如果本文件中所聲明的全局變量屬本文件私用,不允許別的文件訪問,則必須在全局變量類型前加修飾詞static。如果本文件要用到別的文件中允許訪問的全局變量,則本著先聲明后使用的原則,應(yīng)先照原樣做變量聲明在聲明前加修飾詞extern。原文件之間對(duì)函數(shù)的訪問:與全局變量類同。不允許別的文件訪問,在原型聲明前加static,使用其他文件中可以訪問的函數(shù),做原型聲明,并在前加extern頭文件頭文件:將函數(shù)原型和全局變量(加extern修飾)集中起來,還有一些常數(shù)定義,放在一起寫成一個(gè)文件,供各個(gè)相關(guān)的源文件使用多文件組織的編譯和鏈接包含文件:在定義main函數(shù)的源文件中,將組成同一程序的其他文件用包含指令(#include)包含進(jìn)來。由編譯程序?qū)@些文件一起編譯,并鏈接成一個(gè)可執(zhí)行文件。工程文件的方法:將組成一個(gè)程序的所有文件都加到工程文件中,由編譯器自動(dòng)完成多文件組織的編譯和鏈接。編譯預(yù)處理#include指令又叫文件包含指令。使用:執(zhí)行時(shí)將所指定的文件嵌入到該語句處,替換該語句??汕短资褂?。形式:#include<文件名〉:用于包含C+釬函數(shù)頭文件。搜索該文件時(shí)系統(tǒng)直接到存放C+航函數(shù)頭文件所在的目錄中查找所要包含的文件,這叫按標(biāo)準(zhǔn)方式搜索文件。#include”文件名”:用于包含用戶自己編寫的頭文件。系統(tǒng)先在當(dāng)前目錄中搜索該文件,若搜索不到,再按標(biāo)準(zhǔn)方式進(jìn)行搜索#defineffi#undef指令#define指令(宏指令):#define宏名宏定義內(nèi)容宏名常用大寫字母表示;可以出現(xiàn)在程序中的任何位置,一般放在原文件開頭;在宏擴(kuò)展時(shí),只是用原封不動(dòng)的宏定義內(nèi)容來替換宏名;當(dāng)宏名出現(xiàn)在字符串中時(shí),編譯預(yù)處理對(duì)宏名不進(jìn)行宏拓展。#undef指令(終止宏指令):#undef宏名終止宏的作用域條件編譯以宏名已被定義或未被定義作為條件#ifdef’”公論程序段#endif#ifdef程序段1else程序段2#endif#ifndef程序段#endif■IIII■IIII■IIII■IIII■II■IIII■IIII■IIII■IIII■IIII■IIII■IIII■IIII■IIII■II■IIII■IIII■IIII■IIII■IIIII#ifndef程序段1else程序段2#endif以表達(dá)式邏輯為1或0作為條件#if表達(dá)式程序段#endif#if溫工程序段1else程序段2#endif關(guān)于條件編譯的說明表達(dá)式必須有確定的值,只能是常量的運(yùn)算。可以出現(xiàn)在程序中的任何位置。第六章數(shù)組一維數(shù)組一維數(shù)組的聲明及初始化對(duì)一維數(shù)組元素的直接訪問用一維數(shù)組名對(duì)元素進(jìn)行訪問一維數(shù)組名既是整個(gè)數(shù)組之名同時(shí)又是數(shù)組首元素之地址。數(shù)組名不是變量,系統(tǒng)不配給它變量存間。因此對(duì)數(shù)組名不能作賦值、自增或自減等涉賦運(yùn)算,不能進(jìn)行自增或自減走步。用指針變量對(duì)一維數(shù)組元素進(jìn)行訪問用元素指針變量做被調(diào)函數(shù)形參用一維數(shù)組做被調(diào)函數(shù)形參:Voidfun(doublex[8]);Voidfun(doublex[],intn);Voidfun(double*x,intn);用數(shù)組名實(shí)參調(diào)用函數(shù)對(duì)一維數(shù)組進(jìn)行處理二維數(shù)組二維數(shù)組的聲明及初始化對(duì)二維數(shù)組元素的直接訪問用二維數(shù)組名對(duì)元素進(jìn)行訪問二維數(shù)組名是首行地址,是指向首行的指針。所指目標(biāo)是行,所以是按行走步的,走的是行步。各行的數(shù)組名是各行的首元素地址,所指目標(biāo)是元素,所以是按元素走步的。實(shí)際是按列走步,走的是列步*(*(b+i)+j)等價(jià)于b[i][j]系統(tǒng)不作為變量配給存間,不可做賦值、自增或自減運(yùn)算。二維數(shù)組的首元素地址可表示為:&b[0][0]、&b[0]、*b用指針變量對(duì)二維數(shù)組元素進(jìn)行訪問元素指針變量:指向元素的指針,按元素走步。二維數(shù)組名是首行指針按行走步,元素指針變量按元素走步。所以,不能直接用二維數(shù)組名對(duì)元素指針賦值intb[3][5];int*p;p=(int*)b;實(shí)在要賦值,必須先按指針的類型進(jìn)行強(qiáng)制類型轉(zhuǎn)換*(p+n*i+j)等價(jià)于b[i][j]一維數(shù)組指針變量:數(shù)據(jù)類型(*指針變量名)[常量表達(dá)式(與二維數(shù)組列數(shù)相等)]可以用二維數(shù)組名直接賦值用首元素地址或數(shù)組名作實(shí)參調(diào)用函數(shù)對(duì)二維數(shù)組進(jìn)行處理效果直達(dá)主調(diào)函數(shù)關(guān)于字符串的處理字符串的輸入和輸出用一維數(shù)組對(duì)字符串逐個(gè)字符輸入和輸出:采用循環(huán)語句用“cin>>”和“cout<<”對(duì)字符串進(jìn)行輸入和輸出:只需給出數(shù)組名無法輸入空格用函數(shù)cin.getline對(duì)字符串進(jìn)行輸入:cin.getline(首地址,長度)用一維字符串?dāng)?shù)組處理字符串用字符串初始化一維字符數(shù)組:采用逐個(gè)字符初始化時(shí),末尾加‘\0’;字符串整體初始化:chars2[20]={“asting”};Chars3[20]=“astring”;用庫函數(shù)處理字符串頭文件:cstring復(fù)制:char*strcpy(charx[],char*y)將y復(fù)制到x中拼接:char*strcat(charx[],char*y)2關(guān)于字符串組的處理用二維數(shù)組處理字符串組用一維字符指針數(shù)組處理字符串組用一維字符指針數(shù)組名做實(shí)參調(diào)用函數(shù)處理字符串組動(dòng)態(tài)配給存間new運(yùn)算符的用法同類型指針變量=new類型名;同類型指針變量=new類型名(初值);同類型指針變量=new類型名[元素個(gè)數(shù)];同類型指針變量=new類型名[行數(shù)][列數(shù)]配給成功返回存間地址;配給失敗返回空指針0;delete運(yùn)算符的用法delete指針名delete[]指針名delete[行數(shù)]指針名第七章枚舉類型和結(jié)構(gòu)類型枚舉類型枚舉類型概念枚舉類型:取值范圍只局限在某些數(shù)據(jù)組成的集合之內(nèi)的變量。枚舉類型的定義:enum枚舉類型名(枚舉元素列表)枚舉元素又叫枚舉值或枚舉常量枚舉元素的整型值:枚舉元素具有整形值,若不另行設(shè)置,枚舉元素的整型值依次默認(rèn)為0、1、2、3……。設(shè)置整型值:Enumweekday{sunday=7,Monday=1,Tuesday,Wednesday,Thursday,F(xiàn)riday,Saturday};對(duì)于Monday以后的枚舉元素的值未設(shè)置,系統(tǒng)會(huì)按順序逐個(gè)加1在數(shù)學(xué)運(yùn)算時(shí)枚舉型數(shù)據(jù)會(huì)自動(dòng)轉(zhuǎn)換為整型值參與運(yùn)算。枚舉變量的聲明和賦值枚舉變量的聲明:枚舉類型名枚舉變量名;枚舉變量既已聲明系統(tǒng)會(huì)對(duì)枚舉變量配給int型存間,每個(gè)枚舉變量存間占四個(gè)內(nèi)存單元聲明的三種方法:在定義枚舉類型以后,另行聲明;在定義枚舉類型的同時(shí)進(jìn)行聲明;在定義枚舉類型時(shí),不取枚舉類型名,直接聲明枚舉變量賦值:可以用枚舉元素對(duì)枚舉變量進(jìn)行賦值。同類型枚舉變量也可以相互賦值。不能直接賦整型值,要經(jīng)過強(qiáng)制類型轉(zhuǎn)換;具有整型值可參與數(shù)值運(yùn)算,不可進(jìn)行涉賦類運(yùn)算,必要時(shí)先進(jìn)行強(qiáng)制類型轉(zhuǎn)換;枚舉類型是標(biāo)識(shí)符,不能直接輸入輸出,只能輸入整型值,輸出對(duì)應(yīng)字符串;對(duì)枚舉類型進(jìn)行輸出時(shí),顯示整型值。調(diào)用函數(shù)對(duì)枚舉變量輸入和輸出通過switch語句實(shí)現(xiàn)枚舉元素的組合狀態(tài)枚舉元素標(biāo)識(shí)位:枚舉元素整型值按2的倍數(shù)遞增,使所有枚舉元素都有一個(gè)各自專用的二進(jìn)制位枚舉元素組合的狀態(tài)字:可用一個(gè)整數(shù)flag來表明元素組合狀態(tài)。計(jì)算時(shí),個(gè)元素的整型值按位或運(yùn)算求得flag值C++用格式狀態(tài)字表示輸入輸由格式的組合將各個(gè)輸入輸出格式定義為各個(gè)枚舉元素這些枚舉元素是C+汝iOS域中定義的,使用時(shí),應(yīng)該加域運(yùn)算符“ios::",用格式狀態(tài)字flag表示多項(xiàng)格式組合狀態(tài)格式狀態(tài)字flag:多項(xiàng)格式整型值按位或用格式狀態(tài)字通過格式控制符對(duì)多項(xiàng)格式的組合進(jìn)行控制setiosflags(intflag)設(shè)置格式狀態(tài)字flag,表明格式組合狀態(tài)resetiosflags(intflag)終止setiosflags(intflag)的設(shè)置結(jié)構(gòu)類型結(jié)構(gòu)類型的定義一般格式:struct結(jié)構(gòu)類型名{數(shù)據(jù)類型1成員變量1數(shù)據(jù)類型2成員變量2……}結(jié)構(gòu)類型變量的聲明、初始化和賦值結(jié)構(gòu)類型變量所占空間:理論上是各個(gè)成員存間之和。但實(shí)際上為了提高對(duì)內(nèi)存的存取速度,分配給各個(gè)結(jié)構(gòu)成員的內(nèi)存空間以字(4字節(jié)為單位),以保證其地址在字的整數(shù)倍處。初始化:在大括號(hào)中,將所有成員之值依次排列,相互用逗號(hào)隔開靜態(tài)成員:必須在結(jié)構(gòu)體類型創(chuàng)建對(duì)象之前為靜態(tài)成員設(shè)置初值:數(shù)據(jù)類型結(jié)構(gòu)體類型::靜態(tài)成員=初值;靜態(tài)成員屬于結(jié)構(gòu)體,所有該結(jié)構(gòu)體類型的變量共享靜態(tài)成員對(duì)結(jié)構(gòu)類型變量的成員進(jìn)行訪問一般形式:結(jié)構(gòu)型變量.成員名結(jié)構(gòu)類型數(shù)組鏈表鏈表的組成如何表示節(jié)點(diǎn)成員變量對(duì)鏈表結(jié)點(diǎn)的操作插入節(jié)點(diǎn)建立有序新鏈表輸出鏈表各節(jié)點(diǎn)的數(shù)據(jù)刪除結(jié)點(diǎn)釋放鏈表用typedef來定義某類型的又一個(gè)標(biāo)識(shí)符方法步驟typedef類型名類型名別名先按聲明變量的方法,寫出聲明語句:int(*p)();函數(shù)指針將變量名換成想要定義的標(biāo)識(shí)符:int(*POINTER)();在最前面加typedef第八章類和對(duì)象概述類類的定義對(duì)類內(nèi)各成員訪問的控制規(guī)則類的引用性聲明面向?qū)ο蟪绦蛟O(shè)計(jì)的多文件組織對(duì)象的聲明對(duì)象的初始化同類對(duì)象之間的整體賦值訪問對(duì)象的數(shù)據(jù)成員和成員函數(shù)指向本對(duì)象的this指針構(gòu)造函數(shù)構(gòu)造函數(shù)的作用特點(diǎn)和定義形式對(duì)構(gòu)造函數(shù)的兩點(diǎn)說明拷貝構(gòu)造函數(shù)的作用特點(diǎn)和定義形式C+訟自動(dòng)生成復(fù)制構(gòu)造函數(shù)和賦值操作符重載當(dāng)對(duì)象中含有指針,涉及動(dòng)態(tài)分配空間時(shí),必須要重新定義:C++B動(dòng)產(chǎn)生的復(fù)制構(gòu)造函數(shù)會(huì)將對(duì)象中的指針直接賦值給新建對(duì)象的指針,我們應(yīng)該將指針中的地址賦值給指針:先得到指針,然后取指向內(nèi)容,然后動(dòng)態(tài)分配內(nèi)存空間,把得到的地址賦值給指針構(gòu)造函數(shù)和new運(yùn)算符深復(fù)制和淺復(fù)制自動(dòng)生成的復(fù)制構(gòu)造函數(shù)為淺復(fù)制淺復(fù)制時(shí)只復(fù)制指針不復(fù)制指針?biāo)竷?nèi)容,兩個(gè)指針指向同一個(gè)存間的內(nèi)容,這個(gè)存間的內(nèi)容改變時(shí),兩個(gè)指針指向內(nèi)容都改變深復(fù)制時(shí)對(duì)指針?biāo)竷?nèi)容也進(jìn)行復(fù)制,兩個(gè)指針指向不同,但指向存間的內(nèi)容相同:改變存間的內(nèi)容只會(huì)影響一個(gè)在復(fù)制時(shí)創(chuàng)建新的存間然后將原內(nèi)容復(fù)制過來默認(rèn)的構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù)析構(gòu)函數(shù)析構(gòu)函數(shù)的作用特點(diǎn)和定義形式如果自定義了析構(gòu)函數(shù),就必須自定義復(fù)制構(gòu)造函數(shù)和賦值操作符重載如果構(gòu)造函數(shù)進(jìn)行了動(dòng)態(tài)分配內(nèi)存,連接了數(shù)據(jù)庫,打開了文件,就必須自定義析構(gòu)函數(shù)來關(guān)閉這些默認(rèn)的析構(gòu)函數(shù)靜態(tài)數(shù)據(jù)成員靜態(tài)數(shù)據(jù)成員:描述類屬性的數(shù)據(jù)作為類的數(shù)據(jù)成員,前面要用關(guān)鍵詞static進(jìn)行修飾。靜態(tài)成員不屬于對(duì)象,而屬于類。靜態(tài)數(shù)據(jù)成員的聲明:在類的定義中只要冠以static修飾做引用性聲明。在類的定義中不可初始化靜態(tài)數(shù)據(jù)成員,在類的定義外用域運(yùn)算符做一個(gè)正式聲明:類型類名::靜態(tài)數(shù)據(jù)成員名;或類型類名::靜態(tài)數(shù)據(jù)成員名=初值;正式聲明時(shí)分配存間。特例:靜態(tài)整形常量可以在聲明時(shí)賦值staticconstint變量名=常值;在類內(nèi)對(duì)靜態(tài)成員的訪問,和其他成員一樣,不管是公有還是私有所有成員函數(shù)都可訪問它。類外對(duì)公有靜態(tài)成員的訪問:通過對(duì)象名直接訪問;通過類名直接訪問。類外對(duì)私有靜態(tài)成員的訪問:設(shè)置屬于類的公有靜態(tài)成員函數(shù),作為類屬對(duì)外的接口。靜態(tài)成員函數(shù)靜態(tài)成員函數(shù)中不能使用this指針:this是指向當(dāng)前對(duì)象的指針,而靜態(tài)成員屬于類,與對(duì)象無關(guān)。類的友元友元的概念運(yùn)用友元的一個(gè)問題友元聲明的一般形式關(guān)于友元的幾點(diǎn)說明類的嵌套類嵌套的關(guān)系嵌套類構(gòu)造函數(shù)的定義和調(diào)用嵌套類構(gòu)造函數(shù)的定義形式第九章繼承與派生繼承與派生的基本概念積累和派生類的構(gòu)成形式多脈繼承和單脈繼承多級(jí)繼承多脈多級(jí)混合繼承派生類成員的組成和身份的確定派生類成員的組成:構(gòu)造函數(shù)和析構(gòu)函數(shù)、原基類成員組、新增成員組。作用:原基類成員組體現(xiàn)了派生類繼承了基類的全部特征和功能;新增成員組體現(xiàn)了派生類在功能上比基類有所發(fā)展;派生類在新增成員中,可設(shè)置與原基類成員同名的成員特別是同名的成員函數(shù),其函數(shù)體可以有所不同。這體現(xiàn)了派生類可以對(duì)所繼承的基類的特征和功能加以改進(jìn)。派生類派生類的一個(gè)簡(jiǎn)例派生類的定義形式Class派生類名:繼承方式基類名1,繼承方式基類名2……{Private:私有成員Public:公有成員}派生類成員、存間及身份具體確定派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)對(duì)派生類中同名成員的二義性的處理類名加域運(yùn)算符::處理法派生類內(nèi)訪問同名成員:類名::數(shù)據(jù)成員類名::成員函數(shù)名(參數(shù)表)派生類外對(duì)對(duì)象訪問同名成員:派生類對(duì)象名.類名::數(shù)據(jù)成員名派生類對(duì)象名.類名::成員函數(shù)名(參數(shù)表)派生類外對(duì)對(duì)象指針訪問同名成員:派生類對(duì)象指針名->類名::數(shù)據(jù)成員名派生類對(duì)象指針名->類名::成員函數(shù)名(參數(shù)表)訪問派生類中新增同名成員:通過對(duì)象直接訪問對(duì)共同基類經(jīng)多級(jí)多脈繼承發(fā)生同名成員的處理類名加域運(yùn)算符用虛基類避免一個(gè)數(shù)據(jù)多種版本問題一個(gè)數(shù)據(jù)多個(gè)版本來歷:當(dāng)派生類含有兩個(gè)或多個(gè)從一個(gè)共同基類派生而來的基類時(shí),派生類在繼承時(shí),就會(huì)使共同基類的成員在此派生類中有多個(gè)版本措施:在定義共同基類的直接派生類時(shí),在共同基類的繼承方式前加關(guān)鍵字“virtual”。把共同基類設(shè)置為虛基類。class共同基類直接派生類名::繼承方式共同基類名virtual只對(duì)緊跟其后的基類起作用對(duì)于虛基類,所有直接和間接派生類的基類初始化列表中都必須包含對(duì)虛基類的初始化列表?;蛘?,虛基類的構(gòu)造函數(shù)中必須由默認(rèn)值當(dāng)定義某派生類時(shí),只有該派生類對(duì)虛基類構(gòu)造函數(shù)進(jìn)行調(diào)用(只調(diào)用一次)類的賦值兼容共有派生類對(duì)象可以頂替基類對(duì)象公有基類成員經(jīng)共有派生,仍然是公有身份,可直接訪問共有派生類對(duì)基類的賦值兼容公有派生類對(duì)象可以賦值給基類對(duì)象公有派生類對(duì)象地址可以給基類指針初始化或賦值公有派生類對(duì)象可以初始化基類別名對(duì)一個(gè)程序運(yùn)行結(jié)果的思考對(duì)公有派生類中基類成員的操作類的賦值兼容規(guī)則的實(shí)質(zhì)第十章多態(tài)性虛函數(shù)虛函數(shù)的聲明virtual函數(shù)類型成員函數(shù)名(形參表);基類中虛函數(shù)一經(jīng)聲明,所有派生類中的同名成員函數(shù),都為虛函數(shù)。構(gòu)造函數(shù)、靜態(tài)成員函數(shù)和友元函數(shù)都不可聲明為虛基類一般來說,積累成員中有虛函數(shù),則基類析構(gòu)函數(shù)也應(yīng)聲明為虛函數(shù),聲明后派生路徑上所有派生類的析構(gòu)函數(shù)都為虛函數(shù)。虛函數(shù)在實(shí)施賦值兼容規(guī)則中所起的作用當(dāng)基類成員函數(shù)聲明為虛函數(shù)時(shí),在派生過程中可理解為:對(duì)于虛函數(shù),所有新增同名成員會(huì)對(duì)其進(jìn)行替換對(duì)于虛函數(shù)在賦值兼容規(guī)則中,將會(huì)用使用同名派生成員進(jìn)行賦值虛析構(gòu)函數(shù)當(dāng)析構(gòu)函數(shù)定義為虛函數(shù),對(duì)于用派生類進(jìn)行初始化或賦值的基類,在調(diào)用析構(gòu)函數(shù)時(shí),將調(diào)用派生類析構(gòu)函數(shù)純虛函數(shù)和抽象類純虛函數(shù)聲明格式:virtual函數(shù)類型函數(shù)名(參數(shù)表)=0;純虛函數(shù)無函數(shù)體,但派生類中同名函數(shù)必須有函數(shù)體抽象類帶有純虛函數(shù)的類不能實(shí)例化,不能聲明抽象類的對(duì)象。但是可以聲明抽象類指針和抽象類別名抽象類實(shí)例運(yùn)算符重載運(yùn)算符重載概念運(yùn)算符重載規(guī)則不可重載的運(yùn)算符:三目運(yùn)算符(?:)、成員操作(.)、成員指針操作(*)、域限定(::)、求字節(jié)數(shù)(sizeof)重載的功能應(yīng)與原有功能相似重載后優(yōu)先級(jí)和結(jié)核性不變運(yùn)算符操作數(shù)個(gè)數(shù)不變運(yùn)算符重載函數(shù)函數(shù)名:operator運(yùn)算符原型聲明:函數(shù)類型operator運(yùn)算符(形參表)一般用成員函數(shù)和友元函數(shù)實(shí)現(xiàn)用成員函數(shù)實(shí)現(xiàn)運(yùn)算符重載用成員函數(shù)實(shí)現(xiàn)雙目運(yùn)算符重載做操作數(shù)是對(duì)象有操作數(shù)是形參一般為無參函數(shù)對(duì)于“++”“--”前置無形參,后置時(shí)用一個(gè)形參int以示區(qū)別,但并無實(shí)際意義(做函數(shù)定義時(shí)不提供形參名)友元函數(shù)實(shí)現(xiàn)運(yùn)算符重載用友元函數(shù)實(shí)現(xiàn)雙目運(yùn)算符重載用友元函數(shù)實(shí)現(xiàn)單目運(yùn)算符重載提取運(yùn)算符和插入運(yùn)算符的重載提取運(yùn)算符和插入運(yùn)算符對(duì)基本數(shù)據(jù)的重載用友元函數(shù)實(shí)現(xiàn)提取運(yùn)算符和插入運(yùn)算符對(duì)自定義類型數(shù)據(jù)的重載對(duì)象運(yùn)算中的類型轉(zhuǎn)換轉(zhuǎn)換構(gòu)造函數(shù)類型轉(zhuǎn)換函數(shù)對(duì)象運(yùn)算類型轉(zhuǎn)換第十一章輸入輸出流類體系基本概念流類概念流類:具有一定模式的數(shù)據(jù)流并且都有一個(gè)出入端口流:流類的對(duì)象流類的屬性:模式和端口流的端口:C+即端口名作為端口數(shù)據(jù),簡(jiǎn)稱端口。流的模式:針對(duì)流的各種情況采取的各種處置方式的組合。采取枚舉元素作按位與的狀態(tài)字作為模式數(shù)據(jù)。緩沖流緩沖區(qū)一般大?。?12字節(jié)流類體系1基本流類體系組成2基本流類體系各組成部分簡(jiǎn)介/O標(biāo)準(zhǔn)流1I/O標(biāo)準(zhǔn)流概念輸入流類對(duì)象:cin輸出流類對(duì)象:cout、cerr、clog2I/O標(biāo)準(zhǔn)流的端口和模式輸出流類對(duì)象中cerr為非緩沖流,可做即時(shí)輸出;cout輸出端口可重定向;clog很少用。3常用于輸入的成員函數(shù)intget();只從緩沖區(qū)提取一個(gè)字符(包括空白),返回值為提取字符的ASCII碼作為返回值,遇到文件結(jié)束符(AZ),返回系統(tǒng)常量EOF(-1)cin.get();4常用于輸出的成員函數(shù)5用于格式控制的成員函數(shù)6用于檢驗(yàn)出錯(cuò)的成員函數(shù)文件流體系文件流類體系組成文件流類體系個(gè)部分組成簡(jiǎn)介I/O文件流I/O文件流概念I(lǐng)/O文件流的建立,端口和模式的確定用于建立和關(guān)閉I/O文件流的成員函數(shù)I/O文本文件流常用的成員函數(shù)第十二章命名空間、模板和異常處理命名空間命名空間的定義與使用定義命名空間的三種形式:有名字的命名空間的定義與使用namespace命名空間名>{//各種成員說明}在命名空間外訪問訪問成員格式:命名空間名::命名空間成員C+吮許將同一個(gè)命名空間中的定義和聲明分開在多個(gè)文件里給出,或者分成許多段給出。嵌套的命名空間的定義與使用C+吮許在一個(gè)命名空間中定義另一個(gè)命名空間,形成多個(gè)層次的作用域。當(dāng)從外部訪問內(nèi)層命名空間中的成員時(shí),需要使用多個(gè)作用域運(yùn)算符無名的命名空間的定義與使用可以在定義命名空間時(shí)省略名字無名命名空間中說明的標(biāo)識(shí)符,使用時(shí)無法加命名空間名限定,只能在本文本的作用域內(nèi)使用,可以取代全局變量的定義:static類型名變量名命名空間取別名:namespace別名=命名空間名;嵌套命名空間的內(nèi)層命名空間取別名:namespace別名=外層命名空間::內(nèi)層命名空間標(biāo)準(zhǔn)命名空間標(biāo)準(zhǔn)C+釬的所有標(biāo)識(shí)符都定義在名為std的命名空間中。在程序中使用標(biāo)準(zhǔn)庫時(shí),需要使用std限定:std::coutC+加準(zhǔn)庫分為兩類:①?zèng)]有使用命名空間,與C兼容,包含文件的拓展名為“.h”;②使用命名空間std,不與C兼容,包含文件沒有拓展名“.h”使用與C兼容的標(biāo)準(zhǔn)庫使用命名空間std的新標(biāo)準(zhǔn)庫#include<stdio.h>#include<math.h>#include<stdio.h>#include<math.h>#include<string.h>#include<cstdio>#include<cmath>#include<cstring>usingnamespacestd;用using引用命名空間從外部直接訪問命名空間中成員的方法:命名空間名+作用域運(yùn)算符限定using語句的兩種形式:using命令:usingnamespace命名空間名;當(dāng)前作用域可直接引用指定命名空間所有成員,但沒有將成員加入到當(dāng)前作用域using聲明:using命名空間名::成員;將指定命名空間的指定成員引入到當(dāng)前作用域,可以直接訪問這個(gè)成員。當(dāng)前作用域不可聲明同名成員函數(shù)模板函數(shù)模板的概念函數(shù)模板的定義:template<classT1,classT2>返回類型函數(shù)名(參數(shù)表){函數(shù)體}T是模板的類型參數(shù),使用關(guān)鍵字class或typename定義類型參數(shù)函數(shù)模板的使用隱式:函數(shù)名(實(shí)參);系統(tǒng)使用函數(shù)模板的步驟:編譯器根據(jù)實(shí)參類型,推導(dǎo)出模板實(shí)參;編譯器將模板實(shí)參傳遞給模板形參,實(shí)例化函數(shù)模板,產(chǎn)生模板函數(shù);編譯器將函數(shù)調(diào)用與產(chǎn)生的模板函數(shù)進(jìn)行鏈接。顯式:函數(shù)名<模板實(shí)參表>(實(shí)參);函數(shù)模板的重載與特例對(duì)于重載過程中的特殊情況①用普通函數(shù)做個(gè)別處理②在基本模板定義之后,補(bǔ)充模板特例template<>類型名函數(shù)名<類型名>(參數(shù)表){……}前綴template<>表示這是模板特例,<類型名>表示這個(gè)特例實(shí)在模板參數(shù)是該類型時(shí)使用的(可省略)類模板類模板的定義類模板定義的語法形式:template<模板參數(shù)表>class類名{};類模板的成員函數(shù)可在類外定義,若果該成員函數(shù)中有模板參數(shù)則先進(jìn)行模板聲明,再用類模板名,而不是用類名做限定。類模板的使用實(shí)例化類模板的語法格式:類名<模板實(shí)參表>類模板的特例與函數(shù)模板相似STL簡(jiǎn)介S

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論