原文地址:
http://school.ogdev.net/ArticleShow.asp?id=6014&categoryid=10 1. 保留字
C++中,保留字也稱關(guān)鍵字,它是預(yù)先定義好的標(biāo)識(shí)符。見關(guān)鍵字的解釋。
2.關(guān)鍵字
C++中已經(jīng)被系統(tǒng)定義為特殊含義的一類標(biāo)識(shí)符。C++中的關(guān)鍵字有:
3.標(biāo)識(shí)符
對(duì)變量、函數(shù)、標(biāo)號(hào)和其它各種用戶自定義對(duì)象的命名。在C++中,標(biāo)識(shí)符長(zhǎng)度沒有限制,第一個(gè)字符必須是字母或下劃線,其后若有字符則必須為字母、數(shù)字或下劃線。例如count2,_x是正確的標(biāo)識(shí)符形式,而hello!,3th則是錯(cuò)誤的。在C++中標(biāo)識(shí)符區(qū)分大小寫,另外標(biāo)識(shí)符不能和C++中的關(guān)鍵字相同,也不能和函數(shù)同名。
4.聲明
將一個(gè)標(biāo)識(shí)符引入一個(gè)作用域,此標(biāo)識(shí)符必須指明類型,如果同時(shí)指定了它所代表的實(shí)體,則聲明也是定義。
5.定義
給所聲明的標(biāo)識(shí)符指定所代表的實(shí)體。
6.變量
某個(gè)作用域范圍內(nèi)的命名對(duì)象。
7.常量
常量是不接受程序修改的固定值,可以是任意數(shù)據(jù)類型??梢杂煤缶Y準(zhǔn)確的描述所期望的常量類型,如浮點(diǎn)類型常量在數(shù)字后加F,無符號(hào)整型常量加后綴U等等。此外還有串常量如"Please input year:",反斜線字符常量如\n表示回車符。
8. const說明符
const是在變量聲明或函數(shù)聲明時(shí)所用到的一個(gè)修飾符,用它所修飾的實(shí)體具有只讀屬性。
9. 輸入
當(dāng)程序需要執(zhí)行鍵盤輸入時(shí),可以使用抽取操作付">>"從cin輸入流中抽取字符。如:
int myAge;
cin >> myAge;
10.輸出
當(dāng)程序需要在屏幕上顯示輸出時(shí),可以使用插入操作符"<<"向cout 輸出流中插入字符。如:
cout << "This is a program. \n ";
11.流
流是既產(chǎn)生信息又消費(fèi)信息的邏輯設(shè)備,通過C++系統(tǒng)和物理設(shè)備關(guān)聯(lián)。C++的I/O系統(tǒng)是通過流操作的。有兩種類型的流:文本流,二進(jìn)制流。
12.標(biāo)準(zhǔn)輸入輸出庫(kù)
它是C++標(biāo)準(zhǔn)庫(kù)的組成部分,為C++語言提供了輸入輸出的能力。
13.內(nèi)置數(shù)據(jù)類型
由C++直接提供的類型,包括int、float、double、char 、bool、指針、數(shù)組和引用。
14.字符類型
包括 char、signed char、unsigned char三種類型。
15.整數(shù)類型
包括 short、 int、long 三種類型。
16.long
只能修飾 int , double.
long int 指一種整數(shù)類型,它的長(zhǎng)度大于等于int型.
long double 指長(zhǎng)雙精度類型,長(zhǎng)度大于等于double型。
17.short
一種長(zhǎng)度少于或等于int型的整數(shù)類型。
18.signed
由它所修飾的類型是帶符號(hào)的. 只能修飾 int 和 char .
19.布爾型
一種數(shù)據(jù)類型,其值可為:true, false 兩種。
20.浮點(diǎn)類型
包括float, double , long double 三種類型。其典型特征表現(xiàn)為有尾數(shù)或指數(shù)。
21.雙精度類型
浮點(diǎn)類型中的一種。在基本數(shù)據(jù)類型中它是精度最高,表示范圍最大的一種數(shù)據(jù)類型。
22.void類型
關(guān)鍵字之一,指示沒有返回信息。
23.結(jié)構(gòu)類型
類的一種,其成員默認(rèn)為public型。大多用作無成員函數(shù)的數(shù)據(jù)結(jié)構(gòu)。
24.枚舉類型
一種用戶自定義類型,由用戶定義的值的集合組成。
25.類型轉(zhuǎn)換
一種數(shù)據(jù)類型轉(zhuǎn)換為另一種,包括顯式,隱式兩種方式。
26.指針
一個(gè)保存地址或0的對(duì)象。
27. 函數(shù)指針
每個(gè)函數(shù)都有地址,指向函數(shù)地址的指針稱為函數(shù)指針,函數(shù)指針指向代碼區(qū)中的某個(gè)函數(shù),通過函數(shù)指針可以調(diào)用相應(yīng)的函數(shù)。其定義形式為:
int ( * func ) ( char a, char b);
28.引用
為一個(gè)對(duì)象或函數(shù)提供的另一個(gè)名字。
29.鏈表
一種數(shù)據(jù)結(jié)構(gòu),由一個(gè)個(gè)有序的結(jié)點(diǎn)組成,每個(gè)結(jié)點(diǎn)都是相同類型的結(jié)構(gòu),每個(gè)結(jié)點(diǎn)都有一個(gè)指針成員指向下一個(gè)結(jié)點(diǎn)。
30.數(shù)組
數(shù)組是一個(gè)由若干同類型變量組成的集合。
31.字符串
標(biāo)準(zhǔn)庫(kù)中的一種數(shù)據(jù)類型,一些常用操作符如+=,==支持其操作。
32.運(yùn)算符
內(nèi)置的操作常用符號(hào),例如+,* ,& 等。
33.單目運(yùn)算符
只能對(duì)一個(gè)操作數(shù)進(jìn)行操作
34.雙目運(yùn)算符
可對(duì)兩個(gè)操作數(shù)進(jìn)行操作
35.三目運(yùn)算符
可對(duì)三個(gè)操作數(shù)進(jìn)行操作
36.算術(shù)運(yùn)算符
執(zhí)行算術(shù)操作的運(yùn)算符,包括:+,-,*,/,%。
37.條件運(yùn)算符
即"?: " 。
其語法為:
(條件表達(dá)式)?(條件為真時(shí)的表達(dá)式):(條件為假時(shí)的表達(dá)式)
如:x = a < b ? a : b;
相當(dāng)于:
if ( a < b)
x = a;
else
x = b;
38.賦值運(yùn)算符
即:" = "及其擴(kuò)展賦值運(yùn)算符
39.左值
能出現(xiàn)在賦值表達(dá)式左邊的表達(dá)式。
40.右值
能出現(xiàn)在賦值表達(dá)式右邊的表達(dá)式。
41.運(yùn)算符的結(jié)合性
指表達(dá)式中出現(xiàn)同等優(yōu)先級(jí)的操作符時(shí)該先做哪個(gè)的規(guī)定。
42.位運(yùn)算符
" & "," | " , " ^ "," >> "," << "
43.逗號(hào)運(yùn)算符
即" , "
44.邏輯運(yùn)算符
" && ", " || " ," ! "
45.關(guān)系運(yùn)算符
">",">=","<=","< "," <= ","== "
46.new運(yùn)算符
對(duì)象創(chuàng)建的操作符。
47.delete運(yùn)算符
對(duì)象釋放操作符,觸發(fā)析構(gòu)函數(shù)。
48.內(nèi)存泄露
操作堆內(nèi)存時(shí),如果分配了內(nèi)存,就有責(zé)任回收它,否則這塊內(nèi)存就無法重新使用,稱為內(nèi)存泄漏。
49.sizeof運(yùn)算符
獲得對(duì)象在內(nèi)存中的長(zhǎng)度,以字節(jié)為單位。
50.表達(dá)式
由操作符和標(biāo)識(shí)符組合而成,產(chǎn)生一個(gè)新的值。
51.算術(shù)表達(dá)式
用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱操作數(shù))連接起來,符合C++語法規(guī)則的式子。
52.關(guān)系表達(dá)式
用關(guān)系運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱操作數(shù))連接起來,符合C++語法規(guī)則的式子。
53.邏輯表達(dá)式
用邏輯運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱操作數(shù))連接起來,符合C++語法規(guī)則的式子。
54.賦值表達(dá)式
由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來,符合C++語法規(guī)則的式子。
55.逗號(hào)表達(dá)式
由逗號(hào)操作符將幾個(gè)表達(dá)式連接起來,符合C++語法規(guī)則的式子。
56.條件表達(dá)式
由條件運(yùn)算符將運(yùn)算對(duì)象連接起來,符合C++語法規(guī)則的式子。
57.語句
在函數(shù)中控制程序流程執(zhí)行的基本單位,如if語句,while語句,switch語句, do語句, 表達(dá)式語句等。
58.復(fù)合語句
封閉于大括號(hào){}內(nèi)的語句序列。
59.循環(huán)語句
for 語句, while 語句, do 語句三種。
60.條件語句
基于某一條件在兩個(gè)選項(xiàng)中選擇其一的語句稱為條件語句。
61.成員函數(shù)
在類中說明的函數(shù)稱為成員函數(shù)。
62.全局函數(shù)
定義在所有類之外的函數(shù)。
63.main函數(shù)
由系統(tǒng)自動(dòng)調(diào)用開始執(zhí)行C++程序的第一個(gè)函數(shù)
64.外部函數(shù)
在定義函數(shù)時(shí),如果冠以關(guān)鍵字extern,表示此函數(shù)是外部函數(shù)。
65.內(nèi)聯(lián)函數(shù)
在函數(shù)前加上關(guān)鍵字inline說明了一個(gè)內(nèi)聯(lián)函數(shù),這使一個(gè)函數(shù)在程序行里進(jìn)行代碼擴(kuò)展而不被調(diào)用。這樣的好處是減少了函數(shù)調(diào)用的開銷,產(chǎn)生較快的執(zhí)行速度。但是由于重復(fù)編碼會(huì)產(chǎn)生較長(zhǎng)代碼,所以內(nèi)聯(lián)函數(shù)通常都非常小。如果一個(gè)函數(shù)在類說明中定義,則將自動(dòng)轉(zhuǎn)換成內(nèi)聯(lián)函數(shù)而無需用inline說明。
66.函數(shù)重載
在同一作用域范圍內(nèi),相同的函數(shù)名通過不同的參數(shù)類型或參數(shù)個(gè)數(shù)可以定義幾個(gè)函數(shù),編譯時(shí)編譯器能夠識(shí)別實(shí)參的個(gè)數(shù)和類型來決定該調(diào)用哪個(gè)具體函數(shù)。需要注意的是,如果兩個(gè)函數(shù)僅僅返回類型不同,則編譯時(shí)將會(huì)出錯(cuò),因?yàn)榉祷仡愋筒蛔阋蕴峁┳銐虻男畔⒁允咕幾g程序判斷該使用哪個(gè)函數(shù)。所以函數(shù)重載時(shí)必須是參數(shù)類型或者數(shù)量不同。
67.函數(shù)覆蓋
對(duì)基類中的虛函數(shù),派生類以相同的函數(shù)名及參數(shù)重新實(shí)現(xiàn)之。
68.函數(shù)聲明
在C++中,函數(shù)聲明就是函數(shù)原型,它是一條程序語句,即它必須以分號(hào)結(jié)束。它有函數(shù)返回類型,函數(shù)名和參數(shù)構(gòu)成,形式為:
返回類型 function (參數(shù)表);
參數(shù)表包含所有參數(shù)的數(shù)據(jù)類型,參數(shù)之間用逗號(hào)分開。如下函數(shù)聲明都是合法的。
int Area(int length , int width ) ;
或 int Area ( int , int ) ;
69.函數(shù)定義
函數(shù)定義與函數(shù)聲明相對(duì)應(yīng),指函數(shù)的具體實(shí)現(xiàn),即包括函數(shù)體。如:
int Area( int length , int width )
{
// other program statement
}
70.函數(shù)調(diào)用
指定被調(diào)用函數(shù)的名字和調(diào)用函數(shù)所需的信息(參數(shù))。
71.函數(shù)名
與函數(shù)體相對(duì),函數(shù)調(diào)用時(shí)引用之
72.函數(shù)類型
(1) 獲取函數(shù)并返回值。
(2) 獲取函數(shù)但不返回值。
(3) 沒有獲取參數(shù)但返回值。
(4) 沒有獲取參數(shù)也不返回值。
73.形式參數(shù)
函數(shù)中需要使用變?cè)獣r(shí),將在函數(shù)定義時(shí)說明需要接受的變?cè)@些變?cè)Q為形式參數(shù)。形式參數(shù)對(duì)應(yīng)于函數(shù)定義時(shí)的參數(shù)說明。其使用與局部變量類似。
74.實(shí)際參數(shù)
當(dāng)需要調(diào)用函數(shù)時(shí),對(duì)應(yīng)該函數(shù)需要的變?cè)o出的數(shù)據(jù)稱為實(shí)際參數(shù)。
75.值傳遞
函數(shù)調(diào)用時(shí)形參僅得到實(shí)參的值,調(diào)用結(jié)果不會(huì)改變實(shí)參的值。
76.引用傳遞
函數(shù)調(diào)用時(shí)形參為實(shí)參的引用,調(diào)用結(jié)果會(huì)改變實(shí)參的值。
77.遞歸
函數(shù)的自我調(diào)用稱為遞歸。每次調(diào)用是應(yīng)該有不同的參數(shù),這樣遞歸才能終止。
78.函數(shù)體
與函數(shù)名相對(duì),指函數(shù)最外邊由{}括起來的部分。
79.作用域
指標(biāo)識(shí)符在程序中有效的范圍,與聲明位置有關(guān),作用域開始于標(biāo)識(shí)符的生命處。分:局部作用域,函數(shù)作用域,函數(shù)原型作用域,文件作用域,類作用域。
80.局部作用域
當(dāng)標(biāo)識(shí)符的聲明出現(xiàn)在由一對(duì)花括號(hào)所括起來的一段程序內(nèi)時(shí),該標(biāo)示符的作用域從聲明點(diǎn)開始到塊結(jié)束處為止,此作用域的范圍具有局部性。
81.全局作用域
標(biāo)識(shí)符的聲明出現(xiàn)在函數(shù),類之外,具有全局性。
82.類作用域
指類定義和相應(yīng)的成員函數(shù)定義范圍。
83.全局變量
定義在任何函數(shù)之外,可以被任一模塊使用,在整個(gè)程序執(zhí)行期間保持有效。當(dāng)幾個(gè)函數(shù)要共享同一數(shù)據(jù)時(shí)全局變量將十分有效,但是使用全局變量是有一定弊端的:全局變量將在整個(gè)程序執(zhí)行期間占有執(zhí)行空間,即使它只在少數(shù)時(shí)間被用到;大量使用全局變量將導(dǎo)致程序混亂,特別是在程序較復(fù)雜時(shí)可能引起錯(cuò)誤。
84.局部變量
定義在函數(shù)內(nèi)部的變量。局部變量只在定義它的模塊內(nèi)部起作用,當(dāng)該段代碼結(jié)束,這個(gè)變量就不存在了。也就是說一個(gè)局部變量的生命期就是它所在的代碼塊的執(zhí)行期,而當(dāng)這段代碼再次被執(zhí)行時(shí)該局部變量將重新被初始化而不會(huì)保持上一次的值。需要注意的是,如果主程序和它的一個(gè)函數(shù)有重名的變量,當(dāng)函數(shù)被調(diào)用時(shí)這個(gè)變量名只代表當(dāng)前函數(shù)中的變量,而不會(huì)影響主程序中的同名變量。
85.自動(dòng)變量
由auto修飾,動(dòng)態(tài)分配存儲(chǔ)空間,存儲(chǔ)在動(dòng)態(tài)存儲(chǔ)區(qū)中,對(duì)他們分配和釋放存儲(chǔ)空間的工作是由編譯系統(tǒng)自動(dòng)處理的。
86.寄存器變量
存儲(chǔ)在運(yùn)算器中的寄存器里的變量,可提高執(zhí)行效率。
87.靜態(tài)變量
由連接器分配在靜態(tài)內(nèi)存中的變量。
88.類
一種用戶自定義類型,有成員數(shù)據(jù),成員函數(shù),成員常量,成員類型組成。類是描敘C++概念的三個(gè)基本機(jī)制之一。
89.外部變量
由extern修飾的變量
90.堆
即自由存儲(chǔ)區(qū),new 和delete 都是在這里分配和釋放內(nèi)存塊。
91.棧
有兩個(gè)含義:(1)指內(nèi)存中為函數(shù)維護(hù)局部變量的區(qū)域。(2)指先進(jìn)后處的序列。
92.抽象類
至少包含一個(gè)純虛函數(shù)的類。抽象類不能創(chuàng)建對(duì)象,但可以創(chuàng)建指向抽象類的指針,多態(tài)機(jī)制將根據(jù)基類指針選擇相應(yīng)的虛函數(shù)。
93.嵌套類
在一個(gè)類里可以定義另一個(gè)類,被嵌入類只在定義它的類的作用域里有效。
94.局部類
在函數(shù)中定義的類。注意在函數(shù)外這個(gè)局部類是不可知的。由于局部類的說明有很多限制,所以并不常見。
95.基類
被繼承的類稱為基類,又稱父類、超類或范化類。它是一些共有特性的集合,可以有其它類繼承它,這些類只增加它們獨(dú)有的特性。
96.派生類
繼承的類稱為派生類。派生類可以用來作為另一個(gè)派生類的基類,實(shí)現(xiàn)多重繼承。一個(gè)派生類也可以有兩個(gè)或兩個(gè)以上的基類。定義時(shí)在類名后加":被繼承類名"即可。
97.父類
即基類。見95基類的解釋。
98.子類
即派生類。見96派生類的解釋。
99.對(duì)象
有兩重含義:
1. 內(nèi)存中含有某種數(shù)據(jù)類型值的鄰近的區(qū)域。
2. 某種數(shù)據(jù)類型的命名的或未命名的變量。一個(gè)擁有構(gòu)造函數(shù)的類型對(duì)象在構(gòu)造函數(shù)完成構(gòu)造之前不能認(rèn)為是一個(gè)對(duì)象,在析構(gòu)函數(shù)完成析構(gòu)以后也不再認(rèn)為它是一個(gè)對(duì)象。
100. 數(shù)據(jù)成員
指類中存儲(chǔ)數(shù)據(jù)的變量。
101.實(shí)例化
即建立類的一個(gè)對(duì)象。
102.構(gòu)造函數(shù)
是一個(gè)類的實(shí)例的初始化函數(shù),將在生成類的實(shí)例時(shí)被自動(dòng)調(diào)用,用于完成預(yù)先的初始化工作。一個(gè)類可以有幾個(gè)構(gòu)造函數(shù),以不同的參數(shù)來區(qū)別,即構(gòu)造函數(shù)可以被重載,以便不同的情況下產(chǎn)生不同的初始化;也可以沒有構(gòu)造函數(shù),此時(shí)系統(tǒng)將調(diào)用缺省的空構(gòu)造函數(shù)。需要注意的是構(gòu)造函數(shù)沒有返回類型。
103.成員初始化表
成員初始化表可用于初始化類中的任何數(shù)據(jù)成員,放在構(gòu)造函數(shù)頭與構(gòu)造函數(shù)體之間,用":"與構(gòu)造函數(shù)頭分開,被初始化的數(shù)據(jù)成員的值出現(xiàn)在一對(duì)括弧之間,它們之間用逗號(hào)分開。
104.析構(gòu)函數(shù)
是一個(gè)類的實(shí)例的回收函數(shù),將在該實(shí)例結(jié)束使用前被自動(dòng)調(diào)用,用于完成資源的釋放。一個(gè)類只可以有一個(gè)析構(gòu)函數(shù),當(dāng)析構(gòu)函數(shù)執(zhí)行后,該實(shí)例將不復(fù)存在。析構(gòu)函數(shù)同樣沒有返回值。
105.虛析構(gòu)函數(shù)
由virtual 修飾的析構(gòu)函數(shù),當(dāng)用基類指針釋放派生類對(duì)象時(shí)可根據(jù)它所指向的派生類對(duì)象釋放準(zhǔn)確的對(duì)象。
106.繼承
面向?qū)ο蟮某绦蛟O(shè)計(jì)語言的特點(diǎn)之一。即一個(gè)對(duì)象獲得另一個(gè)對(duì)象的特性的過程。如將公共屬性和服務(wù)放到基類中,而它的各派生類除了有各自的特有屬性和服務(wù)外還可以共享基類的公共屬性和服務(wù)。這樣的好處是容易建立體系,增強(qiáng)代碼重復(fù)性。
107.單繼承
一個(gè)派生類只有一個(gè)基類,成為單繼承。
108.重繼承
一個(gè)派生類擁有多個(gè)基類,成為多繼承。
109.虛函數(shù)
在基類中說明為virtual并在派生類中重定義的函數(shù)。重定義將忽略基類中的函數(shù)定義,指明了函數(shù)執(zhí)行的實(shí)際操作。當(dāng)一個(gè)基類指針指向包含虛函數(shù)的派生對(duì)象時(shí),C++將根據(jù)指針指向的對(duì)象類型來決定調(diào)用哪一個(gè)函數(shù),實(shí)現(xiàn)了運(yùn)行時(shí)的多態(tài)性。這里的重定義類似于函數(shù)重載,不同的是重定義的虛函數(shù)的原型必須和基類中指定的函數(shù)原型完全匹配。構(gòu)造函數(shù)不能是虛函數(shù),而析構(gòu)函數(shù)則可以是。
110.純虛函數(shù)
在基類中只有聲明沒有實(shí)現(xiàn)的虛函數(shù)。形式為:
virtual type funname(paralist)=0。這時(shí)基函數(shù)只提供派生類使用的接口,任何類要使用必須給出自己的定義。
111.多態(tài)性
給不同類型的實(shí)體提供單一接口。虛函數(shù)通過基類接口實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性,重載函數(shù)和模板提供了靜態(tài)多態(tài)性。
112.復(fù)制構(gòu)造函數(shù)
以自身類對(duì)象為參數(shù)的構(gòu)造函數(shù),如Z::Z(const Z&). 用在同類對(duì)象間進(jìn)行初始化。
113.運(yùn)算符重載
C++中可以重載雙目(如+,×等)和單目(如++)操作符,這樣可以使用戶像使用基本數(shù)據(jù)類型那樣對(duì)自定義類型(類)的變量進(jìn)行操作,增強(qiáng)了程序的可讀性。當(dāng)一個(gè)運(yùn)算符被重載后,它將具有和某個(gè)類相關(guān)的含義,同時(shí)仍將保持原有含義。
114.靜態(tài)成員函數(shù)
成員函數(shù)通過前面加static說明為靜態(tài)的,但是靜態(tài)成員函數(shù)只能存取類的其他靜態(tài)成員,而且沒有this指針。靜態(tài)成員函數(shù)可以用來在創(chuàng)建對(duì)象前預(yù)初始化專有的靜態(tài)數(shù)據(jù)。
115.靜態(tài)成員變量
在成員變量之前加static關(guān)鍵字將使該變量稱為靜態(tài)成員變量,該類所有的對(duì)象將共享這個(gè)變量的同一拷貝。當(dāng)對(duì)象創(chuàng)建時(shí),所有靜態(tài)變量只能被初始化為0。使用靜態(tài)成員變量可以取代全局變量,因?yàn)槿肿兞渴沁`背面向?qū)ο蟮某绦蛟O(shè)計(jì)的封裝性的。
116.私有成員
只能由自身類訪問的成員。
117.保護(hù)成員
只能由自身類及其派生類訪問的成員。
118.友元
被某類明確授權(quán)可訪問其成員的函數(shù)和類。
119.友元函數(shù)
在函數(shù)前加上關(guān)鍵字friend即說明了一個(gè)友元函數(shù),友元函數(shù)可以存取類的所有私有和保護(hù)成員。友元在重載運(yùn)算符時(shí)有時(shí)是很有用的。
120.友元類
被某類明確授權(quán)可訪問其成員的類
121.例外處理
報(bào)告局部無法處理某錯(cuò)誤的基本方式。由try., throw , catch組成。
122.文件
是用于從磁盤文件到終端或打印機(jī)的任何東西。流通過完成打開操作與某文件建立聯(lián)系。