![計算機二級C++考點_第1頁](http://file4.renrendoc.com/view/acceca420b8b727497a6b055b5b250a4/acceca420b8b727497a6b055b5b250a41.gif)
![計算機二級C++考點_第2頁](http://file4.renrendoc.com/view/acceca420b8b727497a6b055b5b250a4/acceca420b8b727497a6b055b5b250a42.gif)
![計算機二級C++考點_第3頁](http://file4.renrendoc.com/view/acceca420b8b727497a6b055b5b250a4/acceca420b8b727497a6b055b5b250a43.gif)
![計算機二級C++考點_第4頁](http://file4.renrendoc.com/view/acceca420b8b727497a6b055b5b250a4/acceca420b8b727497a6b055b5b250a44.gif)
![計算機二級C++考點_第5頁](http://file4.renrendoc.com/view/acceca420b8b727497a6b055b5b250a4/acceca420b8b727497a6b055b5b250a45.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、計算機二級C+考點計算機二級C+考點:C+語言概述1. 1C+語言的開展C+起源于C語言。1980年貝爾實驗室的BjarneStroustrup和他的同事們開始對C語言進行改進和擴充,把Simula67 (一種早期的面向對象語言)中類的概念引 入到C語言,并將改進后的C語言稱為“帶類的C (Cwithclass) o 1983年夏,“帶類的C”被正式命名為 “C+” ,并于同年7月首次對外發(fā)表。1.2C+語言的特點 1C+是一種面向對象的程序設計語言(1)抽象數(shù)據(jù)類型。(2)封裝和信息隱藏。(3)以繼承和派生方式實現(xiàn)程序的重用。(4)以運算符重載和虛函數(shù)來實現(xiàn)多態(tài)性。(5)以模板來實現(xiàn)類型的參
2、數(shù)化。2C+是程序員和軟件開發(fā)者在實踐中創(chuàng)造的C+往往從編寫實際程序的角度出發(fā),為程序員提供了各 種實用、靈活、高效的語言特性。3C+是C語言的超集中,用戶可以很方便地進入調(diào)試狀態(tài),對程序進行設置斷 點、單步執(zhí)行、觀察變量等操作。計算機二級C+考點:基本控制結構1C+語句C+語句按照不同功能大體分為6種類型,它們是:(1)聲明語句:用于對程序中的各種實體進行聲明、定義 及初始化。(2)表達式語句:用于對程序中的數(shù)據(jù)進行具體操作和處 理。(3)選擇語句:用于實現(xiàn)程序的選擇結構。(4)循環(huán)語句:用于實現(xiàn)程序的循環(huán)結構。(5)跳轉語句:用于實現(xiàn)程序執(zhí)行流程的轉移。(6)復合語句:用于表示程序中的語句
3、塊概念。應當指出的是,C+中并不存在賦值語句和函數(shù)調(diào)用語 句,賦值和函數(shù)調(diào)用都屬于表達式而不是語句。2順序結構1聲明語句聲明語句又稱為說明語句,它可以用來對程序中出現(xiàn)的 各種名稱進行聲明。這些名稱通常是表示變量、常量、函 數(shù)、結構、類、對象等實體的標識符。在C+程序中,一個名 稱在使用之前必須先被聲明。聲明的目的是告訴編譯器某個 名稱所指代的實體類型。使用聲明語句能夠在程序中進行如 下操作:(1)變量聲明(2)常量聲明(3)函數(shù)聲明(4)類型聲明聲明語句可以完成的工作不僅局限于為名稱指定類型, 同時也是定義語句。另外,使用聲明語句還可以在定義變量時對其進行初始 化。2表達式語句C+中所有對數(shù)據(jù)
4、的操作和處理工作都是通過表達式語句 來完成的。表達式語句的語法格式為:V表達式;賦值操作。復合賦值操作。增量、減量操作。函數(shù)調(diào)用操作。輸入輸出操作。3基本輸入輸出一個程序通常會向用戶輸出一些信息,一般也會要求用 戶輸入一些信息。C+程序的輸入輸出操作是通過標準庫中的 輸入/輸出流對象來完成的。在頭文件iostream中定義了代表屏幕的標準輸出流對象cout和代表鍵盤的標準輸入流對象cino cin和cout具有強大的輸入輸出功能和極為靈活的用法。在程序中使用cin和cout之前,應首先加入預處理命令:#include,以包含標準頭文件iostreamo使用cout進行數(shù)據(jù)輸出操作的一般格式為:
5、coutV語句2 V語句n )其中,V語句i (i = l, 2,n)可以是聲明語句、表 達式語句、選擇語句、循環(huán)語句或跳轉語句等任何合法的C+ 語句,當然,也可以是一個復合語句。分隔符“ 和”的作用是把假設干條語句組成的序列包圍起來,使它們在邏輯上成為一條語句。復合語句可以出現(xiàn)在程序中任何需 要語句的地方,但在通常情況下復合語句可以作為以下成分 出現(xiàn)在程序中。(1)函數(shù)的函數(shù)體;(2)循環(huán)語句的循環(huán)體;if語句的分支;switch語句的執(zhí)行局部。實際上,空語句是一種特殊的表達式語句。其語法格式 ;即空語句只由一個分號組成。3選擇結構 1語句 if語句又稱為條件語句,它是程序設計語言中最常見的
6、一種選擇語句。基本if語句基本if語句的功能是根據(jù)給定條件是否成立來決定要不 要執(zhí)行一條語句或語句塊,它的語法格式如下:if(V條件)V語句其中,if為關鍵字;V條件通常是一個表達式且必須用圓括號包圍起來;V語句稱為if子句,它可以是任何類 型的語句(包括復合語句和空語句)。基本if語句的執(zhí)行過程是:首先計算V條件的值,如 果此值不為0 (“真”),那么執(zhí)行語句;如果此值為0(“假”),那么忽略V語句(即不執(zhí)行)而繼續(xù)執(zhí)行if語 句之后的下一條語句。說明:C+中規(guī)定:如果V條件是一個表達式,那么當此表達 式的值不為0時,條件結果為“真”;只有當此表達式的值 為0時,條件結果才為“假” OV條件
7、也可以是一條聲明語句,其中必須定義一個 變量并對它進行初始化。這時,假設此變量的值不為0,那么條件 結果為“真”;假設此變量的值為0,那么條件結果為“假”。if ,else 語句ifelse語句是基本if語句的擴展,其功能是根據(jù)給定 條件是否成立來決定執(zhí)行兩局部語句中的哪一局部,其語法 格式如下:if(條件)V語句1elseV語句2其中,if和else為關鍵字;語句1稱為if子句, 語句2稱為else子句,它們可以是單條語句或復合語 句。ifelse語句的執(zhí)行過程是:首先計算V條件的值, 如果此值不為0 (“真”),那么執(zhí)行語句1,然后忽略V 語句2而去執(zhí)行if語句之后的下一條語句;如果此值為
8、0 (“假”),那么忽略V語句1,執(zhí)行V語句2,然后繼續(xù) 執(zhí)行if語句之后的下一條語句。if語句的嵌套if子句和else子句可以是任何類型的C+語句,當然也 可以是if-else語句本身。通常將這種情況稱為if語句的 嵌套。2switchswitch語句又稱為開關語句,它也是一種選擇語句。 switch語句的功能是根據(jù)給定表達式的不同取值來決定從多 個語句序列中的哪一個開始執(zhí)行,其語法格式如下:switch(V表達式)caseV常量表達式1:V語句序列1caseV常量表達式2:V語句序列2caseV常量表達式n:V語句序列ndefault:V語句序列n+l其中,switch, case和def
9、ault為關鍵字;V表達式 的值必須屬于整型、字符型或枚舉型。常量表達式i (i=l, 2n)是取值互不相同的整型常量、字符常量或枚舉常 量,其具體類型應與V表達式的值相一致。語句序列i (i=l, 2-n, n+1)可以是任意多條語句。switch語句的執(zhí)行過程是: (1)首先計算出V表達式的值,設此值為E;(2)然后計算每個V常量表達式i的值,設它們分別為Cl, C2, Cn;將E依次與Cl, C2, Cn進行比擬。如果E與某個值相等,那么從該值所在的case標號語句開始執(zhí)行各個語句 序列,在不出現(xiàn)跳轉語句的情況下,將一直執(zhí)行到switch語(4)如果E與所有值都不相等且存在default
10、標號,那么從default標號語句起開始向下執(zhí)行,直到switch語句結束(同樣,在不出現(xiàn)跳轉語句的情況下)。(5)如果E與所有值都不相等且不存在default標號,那么 switch語句不會執(zhí)行任何操作。說明:(1)多個case標號可以共用一組語句序列,以實現(xiàn)對于 幾個常量值都執(zhí)行同一操作。(2)default標號語句是可選的。當default不出現(xiàn)時, 如果表達式的值與所有常量表達式i(i=l, 2n)的 值都不相等,那么程序執(zhí)行流程會跳過switch語句。(3) switch語句是可以嵌套的。case和default標號只 與包含它們的最內(nèi)層的switch組合在一起。當需要針對表達式的不
11、同取值范圍進行不同處理時,使用ifelseif階梯結構比擬方便。因為switch語句只 能對相等關系進行測試,而if語句卻可以用關系表達式對一 個較大范圍內(nèi)的值進行測試。4循環(huán)結構 lfor語句 for語句是C+中最常用且功能最強的循環(huán)語句,其語法格式如下:for(V表達式1; V表達式2; V表達式3)V語句其中,for為關鍵字;V表達式1是for循環(huán)的初始化 局部,它一般用來設置循環(huán)控制變量的初始值;V表達式2 是for循環(huán)的條件局部,它是用來判定循環(huán)是否繼續(xù)進行的 條件;V表達式3是for循環(huán)的增量局部,它一般用于修改 循環(huán)控制變量的值;V語句稱為for循環(huán)的循環(huán)體,它是 要被重復執(zhí)行的
12、代碼行,for循環(huán)體可以是單條語句,也可以 是由花括號包圍起來的復合語句。for語句的執(zhí)行過程是:(1)計算V表達式1的值;(2)計算V表達式2的值,如果此值不等于0 (即循環(huán)條件為“真”),那么轉向步驟(3);如果此值等于0 (即循環(huán)條件為“假”),那么轉向步驟(5);(3)執(zhí)行一遍循環(huán)體語句: (4)計算V表達式3的值,然后轉向步驟(2); (5)結束for循環(huán)。C+中for語句的書寫格式非常靈活,這主要表現(xiàn)為:(DV表達式1可以是變量聲明語句,即循環(huán)控制變量 可在其中定義。V表達式1可以省略。這時,應在for語句之前給循環(huán)控制變量賦初始值。注意:省略V表達式1時,其后的分號不能省略。V表
13、達式2可以省略。這時,for語句將不再判斷循環(huán)條件,循環(huán)會無限次地執(zhí)行下去。這種情況通常稱為“死循環(huán)”。V表達式3可以省略。這時,應在循環(huán)中對循環(huán)控制變量進行遞增或遞減操作,以確保循環(huán)能夠正常結束。三個表達式可同時省略。這時,for語句顯然也是一個“死循環(huán)”。(6)V表達式1、V表達式2和V表達式3都可以是 任何類型的C+表達式。2while語句while語句是一種形式較為簡單的循環(huán)語句,其語法格式 如下:、while(V表達式)V語句其中,while為關鍵字:V 去達式是while循環(huán)的條件,它用于控制循環(huán)是否繼續(xù)進 行;V語句,稱為while循環(huán)的循環(huán)體,它是要被重復執(zhí)行 的代碼行;whl
14、e循環(huán)體可以是單條語句,也可以是由花括號 括起來的復合語句。實際上,while語句是for語句省略掉表 達式1和表達式3的特殊情況。while語句的執(zhí)行過程是:-a(1)計算V表達式的值,如果此值不等于0 (即循環(huán)條 件為“真”),那么轉向步驟(2);如果此值等于0 (即循環(huán) 條件為“假”),那么轉向步驟(4);(2)執(zhí)行一遍循環(huán)體語句;(3)轉向步驟(1); (4)結束while循環(huán)。從中可以看出,while語句將在V表達式成立的情況下 重復執(zhí)行V語句;如果在第一次進入while循環(huán)時表達 式,就不成立,那么V語句一次也不會執(zhí)行。注意:(1)由于while語句中缺少對循環(huán)控制變量進行初始化的
15、 結構,因此在使用while循環(huán)之前對循環(huán)控制變量進行初始 化顯得很重要。(2)在while循環(huán)體中不要忘記對循環(huán)控制變量的值進行 修改,以使循環(huán)趨向結束。能夠很好地兼容C語言正是C+取得成功的原因之一,這 是因為:(i)c+繼承了 c語言簡明、高效、靈活等眾多優(yōu)點。(2)以前使用C語言編寫的大批軟件可以不加任何修改,直接在C+開發(fā)環(huán)境下維護。(3)C語言程序員只需要學習C+擴充的新特性,就可以 很快地使用C+編寫程序。1.31.3向對象程序設計C+是一種面向對象的程序設計語言,它充分支持面向對 象思想中的三個主要特征是:1封裝性封裝性是指將數(shù)據(jù)和算法捆綁成一個整體,這個整體就 是對象,描述對
16、象的數(shù)據(jù)被封裝在其內(nèi)部。如果需要存取數(shù) 據(jù),可以通過對象提供的算法來進行操作,而無需知道對象 內(nèi)部的數(shù)據(jù)是如何表示和存儲的。這種思想被稱為信息隱 藏。2繼承性繼承性是指一種事物保存了另一種事物的全部特征,并 且具有自身的獨有特征。C+語言采用繼承來支持重用,程序可以在現(xiàn)有類型的基 礎上擴展功能來定義新類型。新類型是從現(xiàn)有類型中派生出 來的,因此被稱為派生類。3多態(tài)性3dowhile語句;dowhile語句也是一種循環(huán)語句,它 的功能類似于while語句,只是將循環(huán)的判定條件移到了循 環(huán)體之后,其語法格式如下:doV語句while (V表達式);其中,do和while為關鍵字;V語句稱為dowh
17、ile 循環(huán)的循環(huán)體,它是要被重復執(zhí)行的代碼行,dowhile循 環(huán)體可以是單條語句,也可以是由花括號包圍起來的復合語 句;V表達式是(10while循環(huán)的條件,它用于控制循 環(huán)是否繼續(xù)進行。注意:在dowhile語句中最后的分號不能丟掉,它用 來表示dowhile語句的結束。dowhile語句的執(zhí)行過程是: (1)執(zhí)行一遍循環(huán)體V語句;(2)計算表達式的值,如果此值不等于0 (即循環(huán)條 件為“真”),那么轉向步驟(1);如果此值等于0 (即循環(huán) 條件為“假”),那么轉向步驟(3);(3)結束dowhile循環(huán)。注意:(1)在使用dowhile循環(huán)之前同樣需要對循環(huán)控制變量 進行初始化;在do
18、-while循環(huán)中仍然不要忘記對循環(huán)控制 變量進行修改,以使循環(huán)趨向結束,防止死循環(huán)的發(fā)生。(2)dowhile循環(huán)與while循環(huán)的不同之處在于: dowhile循環(huán)的循環(huán)體在前,循環(huán)條件在后,因此 dowhile循環(huán)體在任何條件下(即使不滿足循環(huán)條件)都至 少被執(zhí)行一次。而while循環(huán)條件在前,循環(huán)體在后,當條件不滿足時,循環(huán)體有可能一次也不會執(zhí)行。這一點正是在 構造循環(huán)結構時決定使用while語句還是dowhile語句的 重要依據(jù)。循環(huán)的嵌套在一個循環(huán)結構中又完整地包含著另一個循環(huán)結構稱為 循環(huán)的嵌套。C+中三種類型的循環(huán)語句都可以相互嵌套,并 且嵌套的層數(shù)沒有限制。程序設計中有許多問
19、題需要使用循 環(huán)結構的嵌套來解決。5跳轉語句C+中有4種跳轉語句,它們是:break語句、continue 語句、return語句和goto語句。lbreak語句break語句又稱為跳出語句,其語法格式如下:break;即由關鍵字break加上一個分號構成。break語句只能用在switch語句和循環(huán)語句中。在 switch語句中,break用來使執(zhí)行流程跳出switch語句,而 繼續(xù)執(zhí)行switch后面的語句。在循環(huán)語句中,break用來使 執(zhí)行流程無條件地跳出本層循環(huán)體。另外,break語句還經(jīng)常用于使執(zhí)行流程跳出死循環(huán)。2continue 語句continue語句又稱為繼續(xù)語句,其語法格
20、式如下:continue;即由關鍵字continue加上一個分號構成。continue語句僅用在循環(huán)語句中,它的功能是:結束本 次循環(huán),即跳過循環(huán)中尚未執(zhí)行的語句,接著進行下一次是 否執(zhí)行循環(huán)的條件判定。在while和dowhile循環(huán)中,continue語句將使執(zhí)行流程直接跳轉到循環(huán)條件的判定局部,然后決定循環(huán)是否繼 續(xù)進行。在for循環(huán)中,當遇到continue時,執(zhí)行流程將跳 過循環(huán)中余下的語句,而轉去執(zhí)行for語句中的V表達式3 ,然后根據(jù)V表達式2進行循環(huán)條件的判定以決定是否繼 續(xù)執(zhí)行for循環(huán)體。3return 語句return語句又稱為返回語句,它具有兩種語法格式: (1)ret
21、urn;(2) return V 表達式 ;其中,return為關鍵字,第2種格式中的V表達式可 以是任何類型的C+表達式。return語句只能用在函數(shù)體中。在返回類型為void的函 數(shù)體中,假設想跳出函數(shù)體,將執(zhí)行流程轉移到調(diào)用該函數(shù)的 位置,應使用return語句的第1種格式。在返回類型不是 void的函數(shù)體中,應使用return語句的第2種格式,使執(zhí)行 流程轉移到調(diào)用該函數(shù)的位置,并將表達式的值作為函 數(shù)的返回值。對于非void返回類型的函數(shù)來說,其函數(shù)體中必須至少 具有一條return語句。4goto語句goto語句又稱為轉向語句,其語法格式如下:gotoV 標號;其中,goto為關鍵
22、字;其中,goto為關鍵字;V標號是一個由用戶命名的標識符。在goto語句所處的函數(shù)體中必須同時存在一條由標 號標記的語句,其格式為:標號:V語句 即在標號和語句之間使用一個冒號分隔,這種語法結構稱為標號語句。標號語句中的V標號應與goto語 句中的V標號相同,V語句可以是任何類型的C+語句。注意:某個goto語句和相應的標號語句必須位于同一函數(shù)體內(nèi)。goto語句的功能是使執(zhí)行流程跳轉到v標號所標記的 V語句處(即對應的標號語句處)。計算機二級C+函數(shù)考點1函數(shù)定義在標準C+中,函數(shù)的定義形式為:返回類型 函數(shù)名(V形參列表)V函數(shù)體)V函數(shù)名 一般是標識符,一個程序只有一個main函 數(shù),其
23、他函數(shù)名可隨意取(當然,必須防止使用C+的關鍵 字),好的程序設計風格要求函數(shù)名最好是取有助于記憶的名 字,如getchar函數(shù),通過函數(shù)的名字可以知道函數(shù)的功 能,這無疑會增加程序的可讀性。形參列表是由逗號分隔的,分別說明函數(shù)的各個參 數(shù)。形參將在函數(shù)被調(diào)用時從調(diào)用函數(shù)那里獲得數(shù)據(jù)。在C+ 中,函數(shù)形參列表可以為空,即一個函數(shù)可以沒有參數(shù)。但 即使函數(shù)形參列表為空,括起函數(shù)參數(shù)的一對圓括號也不允V返回類型又稱函數(shù)類型,表示一個函數(shù)所計算(或運 行)的結果值的類型。如果一個函數(shù)沒有結果值,如函數(shù)僅用 來更新(或設置)變量值、顯示信息等,那么該函數(shù)返回類型為 void類型。一個沒有返回值的函數(shù)類
24、似于一些程序語言(如 pascal 語言)中的過程(procedure)。由一對花括號括起來的V函數(shù)體是語句的序列,它定 義了函數(shù)應執(zhí)行的具體操作。需要注意的是,C+不允許函數(shù)定義嵌套,即在一個函數(shù) 體內(nèi)不能包含有其他函數(shù)的定義。2函數(shù)調(diào)用C+中函數(shù)調(diào)用的一般形式為:V函數(shù)名(V實參表)當調(diào)用一個函數(shù)時,其實參的個數(shù)、類型及排列次序必 須與函數(shù)定義時的形參相一致,也就是說實參與形參應該一 對一地匹配。當函數(shù)定義時沒有形參,那么函數(shù)調(diào)用時,實 參表亦為空。依據(jù)對函數(shù)返回值的使用方式,函數(shù)的調(diào)用方法可分為 以下幾種:(1)語句調(diào)用,這通常用于不帶返回值的函數(shù)。這種情況 下,被調(diào)用函數(shù)作為一個獨立的
25、語句出現(xiàn)在程序中。(2)表達式調(diào)用。將被調(diào)用函數(shù)作為表達式的一局部來進 行調(diào)用。它適用于被調(diào)用函數(shù)帶有返回值的情況。(3)參數(shù)調(diào)用。被調(diào)用函數(shù)作為另一個函數(shù)的一個參數(shù)進 行調(diào)用。3函數(shù)原型在C+中,函數(shù)在使用之前要預先聲明。這種聲明在標準 C+中稱為函數(shù)原型(functionprototype),函數(shù)原型給出了 函數(shù)名、返回類型以及在調(diào)用函數(shù)時必須提供的參數(shù)的個數(shù) 和類型。函數(shù)原型的語法為:返回類型函數(shù)名(形參列表);(注意在函數(shù)原型后要有分號) 實際上函數(shù)原型說明有兩種形式:(1)直接使用函數(shù)定義的頭部,并在后面加上一個分號。(2)在函數(shù)原型說明中省略參數(shù)列表中的形參變量名,僅 給出函數(shù)名、
26、函數(shù)類型、參數(shù)個數(shù)及次序。注意:在C+中,在調(diào)用任何函數(shù)之前,必須確保它已有 原型說明。函數(shù)原型說明通常放在程序文件的頭部,以使得 該文件中所有函數(shù)都能調(diào)用它們。實際上,標準函數(shù)的原型 說明放在了相應的頭文件中,這也是為什么在調(diào)用標準函數(shù) 時必須要包含相應的頭文件的原因之一。在了解了函數(shù)定義、函數(shù)調(diào)用和函數(shù)原型之后,就可以 寫出一個完整的C+程序,并可將其編譯和運行。4函數(shù)返回類型根據(jù)函數(shù)是否帶有參數(shù)以及函數(shù)是否有返回值,可以將1帶參數(shù)的有返回值函數(shù)定義形式為:返回類型函數(shù)名(V參數(shù)列表)V語句序列2不帶參數(shù)的有返回值函數(shù)定義形式為:V返回類型 函數(shù)名()(V語句序列)3帶參數(shù)的無返回值函數(shù)定
27、義形式為:void函數(shù)名(V參數(shù)列表)語句序列)4不帶參數(shù)的無返回值函數(shù)定義形式為:voidV函數(shù)名()V語句序列5函數(shù)參數(shù)C+中,函數(shù)之間傳遞參數(shù)有傳值和傳地址兩種傳遞方 式。此外,C+還提供了默認參數(shù)機制,可以簡化復雜函數(shù)的 調(diào)用。1參數(shù)的傳遞方式(1)傳值傳值是將實參值的副本傳遞(拷貝)給被調(diào)用函數(shù)的形 參。它是C+的默認參數(shù)傳遞方式,在此之前的多數(shù)函數(shù)參數(shù) 傳遞都是傳值。由于傳值方式是將實參的值復制到形參中,因此實參和 形參是兩個不同的變量,有各自的存儲空間,可以把函數(shù)形 參看作是函數(shù)的局部變量。傳值的最大好處是函數(shù)調(diào)用不會 改變調(diào)用函數(shù)實參變量的內(nèi)容,可防止不必要的副作用。(2)傳地
28、址有時我們確實需要通過函數(shù)調(diào)用來改變實參變量的、值, 或通過函數(shù)調(diào)用返回多個值(return語句只能返回一個值), 這時僅靠傳值方式是不能到達目的。2默認參數(shù)在C+中,可以為參數(shù)指定默認值,在函數(shù)調(diào)用時沒有指 定與形參相對應的實參時就自動使用默認值。默認參數(shù)可以 簡化復雜函數(shù)的調(diào)用。默認參數(shù)通常在函數(shù)名第一次出現(xiàn)在程序中的時候,如 在函數(shù)原型中,指定默認參數(shù)值。指定默認參數(shù)的方式從語 法上看與變量初始化相似。6函數(shù)重載如果能用同一個函數(shù)名字在不同類型上做相類似的操作 就會方便很多,這種情況即為函數(shù)重載。其實這一技術早已 用于C+的基本運算符。例如加法操作只有一個運算符+,但 它卻可以用來做整型
29、數(shù)、浮點數(shù)和指針的加法運算。將這一 思想推廣到函數(shù),即為函數(shù)重載。7內(nèi)聯(lián)函數(shù)C+引入內(nèi)聯(lián)(inline)函數(shù)的原因是用它來取代C中的預 處理宏函數(shù)。內(nèi)聯(lián)函數(shù)和宏函數(shù)的區(qū)別在于,宏函數(shù)是由預 處理器對宏進行替換,而內(nèi)聯(lián)函數(shù)是通過編譯器來實現(xiàn)的, 因此內(nèi)聯(lián)函數(shù)是真正的函數(shù),只是在調(diào)用的時候,內(nèi)聯(lián)函數(shù) 像宏函數(shù)一樣的展開,所以它沒有一般函數(shù)的參數(shù)壓棧和退 棧操作,減少了調(diào)用開銷,因此,內(nèi)聯(lián)函數(shù)比普通函數(shù)有更 高的執(zhí)行效率。在C+中使用inline關鍵字來定義內(nèi)聯(lián)函數(shù)。inline關鍵字放在函數(shù)定義中函數(shù)類型之前。不過,編譯器會將在類 的說明局部定義的任何函數(shù)都認定為內(nèi)聯(lián)函數(shù),即使它們沒 有用inli
30、ne說明。8遞歸函數(shù)如果一個函數(shù)在其函數(shù)體內(nèi)直接或間接地調(diào)用了自己,該函數(shù)就稱為遞歸函數(shù)。遞歸是解決某些復雜問題的十分有 效的方法。遞歸適用以下的一般場合。(1)數(shù)據(jù)的定義形式按遞歸定義。(2)數(shù)據(jù)之間的關系(即數(shù)據(jù)結構)按遞歸定義,如樹的遍 歷,圖的搜索等。(3)問題解法按遞歸算法實現(xiàn),例如回溯法等。使用遞歸需要注意以下幾點:(1)用遞歸編寫代碼往往較為簡潔,但要犧牲一定的效 率。因為系統(tǒng)處理遞歸函數(shù)時都是通過壓棧/退棧的方式實現(xiàn) 的。(2)無論哪種遞歸調(diào)用,都必須有遞歸出口,即結束遞歸 調(diào)用的條件。(3)編寫遞歸函數(shù)時需要進行遞歸分析,既要保證正確使用了遞歸語句,還要保證完成了相應的操作。
31、9變量作用域與生存周期1C+中變量的存儲類型分為如下幾種類型:auto函數(shù)內(nèi)部的局部變量(aut??墒÷圆粚?。多態(tài)性是指當多種事物繼承自一種事物時,同一種操作 在它們之間表現(xiàn)出不同的行為。C+語言中使用函數(shù)重載、模板、虛函數(shù)等概念來支持多態(tài)性。C+語言主要包括面向過程和面向對象兩局部內(nèi)容。學習 C+語言時,應該先學習其面向過程局部,再學習面向對象部 分。1.4C+語言的基本符號C+語言中的基本符號可以分為3類:1字母。包括大寫英文字母和小寫英文字母共52個符 號。2數(shù)字3特殊符號。包括:+ -*/=, _: ; ?= =| ! #%&() 口 - V 和“空格”共30個符號。這三類符號共計9
32、2個,它們組成了 C+語言的基本符號 集合。5C+語言的詞匯 1關鍵字碧字也稱為保存字,它是由C+語言本身預先定義好的 一類隼詞。表1ANSIC標準規(guī)定的關鍵字autobreakcasecharstatic靜態(tài)存儲分配,又分為內(nèi)部和外部靜態(tài)。extern全局變量(用于外部變量說明)。register變量存儲在硬件寄存器中。(1)自動變量在函數(shù)內(nèi)部定義的局部變量即為自動變量,用于說明 自動變量的關鍵字auto可以省略。在函數(shù)頭部定義的自動變量作用域為定義它的函數(shù); 而在塊語句中定義的自動變量作用域為所在塊。與C不同, C+還允許在變量使用之前才定義變量。編譯程序不給自動變量賦予隱含的初值,故其初
33、值不 確定。因此,每次使用自動變量前,必須明確地賦初值。形參可以看成是函數(shù)的自動變量,作用域僅限于相應 函數(shù)內(nèi)。自動變量所使用的存儲空間由程序自動地創(chuàng)立和釋 放。當函數(shù)調(diào)用時為自動變量創(chuàng)立存儲空間,函數(shù)調(diào)用結束 時將自動釋放為其創(chuàng)立的存儲空間。因此,自動變量隨函數(shù) 的調(diào)用而存在并隨函數(shù)調(diào)用結束而消失,由一次調(diào)用到下一 次調(diào)用之間不保存值。(2)外部變量在函數(shù)外部定義的變量即為外部變量。外部變量的作用域是整個程序(全局變量)o在C+中,程序可以分別放在幾個源文件上,每個文件 可作為一個編譯單位分別編譯。外部變量只需在某個文件上定義一次,其他文件假設要引用此變量時,應用extern加以說 明。(外
34、部變量定義時不必加extern關鍵字)。在同一文件中,假設前面的函數(shù)要引用在其后面定義的 外部(在函數(shù)之外)變量時,也應用extern加以說明。外部變量是由編譯程序在編譯時給其分配空間,屬于 靜態(tài)分配變量,對于數(shù)值型(整型、浮點型和字符型)外部變 量來說,其有隱含初值0。引進外部變量的原因:其一是只要程序運行外部變量的 值是始終存在的;其二是外部變量可以在所有函數(shù)間共享。在C+中,可以使用外部變量,但是,必須要清楚使用外 部變量的副作用。使用外部變量的函數(shù)獨立性差,通常不能 被移植到其他程序中,而且,如果多個函數(shù)都使用到某個外 部變量,一旦出現(xiàn)問題,就很難發(fā)現(xiàn)問題是由哪個函數(shù)引起 的。在C+中
35、,盡量不用或少用外部變量,可使用參數(shù)在函數(shù) 間進行數(shù)據(jù)的傳遞。constcontinuedefaultdodoub1eelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionuns i gnedvo i dvo1at i1ewhile表2ANSIC+標準補充的關鍵字boolcatchclassconst_castdynamic_castexplicitfalsefriendinlinemutablenamespacenewoperatorprivateprot
36、ectedpublicreinterpret_casestatic_casttemplatethisthrowtruetrytypeidtypenameusingvirtualwchar_t2標識符標識符是用戶為程序中各種需要命名的“元素”所起的 名字。標識符的組成要符合一定的規(guī)那么:(1)標識符是一個以字母或下劃線開頭的,由字母、數(shù) 字、下劃線組成的字符串。.(2)標識符不能與任意一個關鍵字同名。(3)標識符中的字母區(qū)分大小寫。(4)標識符不宜過長。C+語言一般設定一個標識符的有 效長度為32個字符。3字面常量常量是指在程序中固定不變的值。常量一般有兩種表示形式,即符號常量和字面常量。C+語
37、言中符號常量的名字就 是一個標識符,而字面常量卻是一類特殊的單詞。字面常量 分為整型、浮點型、字符型和字符串型四類。4運算符運算符是對程序中的數(shù)據(jù)進行操作的一類單詞。C+語言 中運算符的種類非常豐富,其中有:(1)單字符組成的運算符。(2)雙字符組成的運算符。(3)三個字符組成的運算符。(4)關鍵字運算符。5標點符號標點符號是在程序中起分割內(nèi)容和界定范圍作用的一類單詞。表3C+語言的標點符號標點符號描述(空格)語句中各成分之間的分割符;(分號)語句的結束符(單引號)字符常量的起止標記符 (雙引號)字符串常量的起止標記符 # (井字號)預處理命令的開始標記符(左花括號)復合語句的開始標記符(右花
38、括號)復合語句的結束標記符 / (雙斜杠)行注釋的開始標記符 /*(斜杠和星號)塊注釋的開始標記符 */(星號和斜杠)塊注釋的結束標記符1.6C+程序的基本框架由于C+語言既支持結構化程序設計,又支持面向對象程序設計,所以它同時具有結構化程序設計和面向對象程序設 計兩種基本框架。1結構化程序設計框架在C+的結構化程序設計框架中,函數(shù)是程序的基本組成 單元。程序的主體通常由假設干函數(shù)定義構成。函數(shù)是程序中完成一定功能的模塊。各個函數(shù)之間通過 參數(shù)、返回值和全局變量來進行數(shù)據(jù)通信。當編寫一個較大的程序時,可以把它按照功能逐級劃分 成許多相對獨立的小模塊。每個小模塊的功能由一個函數(shù)實 現(xiàn),再通過適當?shù)姆椒▽⑦@些函數(shù)組織在一起協(xié)同工作,就 能夠完成整個程序所規(guī)定的任務。這種方法表達出了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年二手房購買合同例文(4篇)
- 2025年產(chǎn)品銷售代理合同參考樣本(三篇)
- 2025年個人房屋抵押借款服務合同(2篇)
- 2025年二手房購房正規(guī)合同(2篇)
- 2025年二手車分期付款合同(2篇)
- 2025年九年級思想品德上學期工作總結樣本(三篇)
- 2025年五年級數(shù)學教研組總結(2篇)
- 2025年臨時工合同簡單版(2篇)
- 健身連鎖股權轉讓居間協(xié)議
- 汽車內(nèi)飾運輸協(xié)議模板
- 2025年上半年東莞望牛墩鎮(zhèn)事業(yè)單位招考(10人)易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年礦山開采承包合同實施細則4篇
- 2025年度茶葉品牌加盟店加盟合同及售后服務協(xié)議
- 氧氣、乙炔工安全操作規(guī)程(3篇)
- 建筑廢棄混凝土處置和再生建材利用措施計劃
- 集裝箱知識培訓課件
- 某縣城區(qū)地下綜合管廊建設工程項目可行性實施報告
- 《架空輸電線路導線舞動風偏故障告警系統(tǒng)技術導則》
- 2024年計算機二級WPS考試題庫
- 廣東省廣州黃埔區(qū)2023-2024學年八年級上學期期末數(shù)學試卷(含答案)
- 法理學課件馬工程
評論
0/150
提交評論