《C++程序設(shè)計(jì)基礎(chǔ)教程/普通高等教育“十二五”計(jì)算機(jī)類(lèi)規(guī)劃教材》共分為13章,分別介紹了C++基礎(chǔ)、基本數(shù)據(jù)類(lèi)型與運(yùn)算符、程序控制、函數(shù)、數(shù)組、指針與引用、自定義數(shù)據(jù)類(lèi)型、類(lèi)、運(yùn)算符重載、繼承與派生、虛函數(shù)與多態(tài)性、C++輸入/輸出流、標(biāo)準(zhǔn)字符ASCII碼表。
作為最流行的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言之一,C++既支持過(guò)程化程序設(shè)計(jì),也支持面向?qū)ο蟪绦蛟O(shè)計(jì)。從操作系統(tǒng)、設(shè)備控制到數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、數(shù)字媒體等眾多的系統(tǒng)軟件和應(yīng)用軟件開(kāi)發(fā)領(lǐng)域都能看到它的身影。
為了幫助讀者更好地學(xué)習(xí)C++程序設(shè)計(jì),本書(shū)作者結(jié)合多年的C++教學(xué)實(shí)踐和軟件開(kāi)發(fā)經(jīng)驗(yàn),從零基礎(chǔ)入手,全面、系統(tǒng)地介紹了C++語(yǔ)言的相關(guān)知識(shí),并輔以大量的程序?qū)嵗?/span>
全書(shū)共13章,分別介紹了C++基礎(chǔ)、基本數(shù)據(jù)類(lèi)型與運(yùn)算符、程序控制、函數(shù)、數(shù)組、指針與引用、自定義數(shù)據(jù)類(lèi)型、類(lèi)、運(yùn)算符重載、繼承與派生、虛函數(shù)與多態(tài)性、C++輸入/輸出流。本書(shū)具有如下特色:
(1)詳略得當(dāng),主次分明
C++中包含的內(nèi)容較多,由于篇幅所限不可能面面俱到,必須有所取舍。書(shū)中對(duì)于非重點(diǎn)或較復(fù)雜的內(nèi)容略講,如數(shù)組部分重點(diǎn)是一維和二維數(shù)組,三維以上數(shù)組只介紹概念。另外,對(duì)一些選講的內(nèi)容以“*”標(biāo)注。
(2)講解由淺入深,循序漸進(jìn)
本書(shū)的編排采用循序漸進(jìn)的方式,內(nèi)容梯度從易到難,講解由淺入深,適合各個(gè)層次的讀者學(xué)習(xí)。
。3)寫(xiě)作細(xì)致,以讀者為出發(fā)點(diǎn)
本書(shū)內(nèi)容編排、概念表述、語(yǔ)法講解、實(shí)例展示,以及源代碼注釋等都很細(xì)致,力圖將問(wèn)題講解得清楚,盡量為讀者掃清學(xué)習(xí)中的障礙。
。4)貫穿大量的典型實(shí)例和開(kāi)發(fā)技巧
本書(shū)精選重點(diǎn),強(qiáng)化主要概念,在講解知識(shí)點(diǎn)時(shí)貫穿了大量的典型實(shí)例和開(kāi)發(fā)技巧,以例題釋含義,力求讓讀者獲得真正實(shí)用的知識(shí)。
。5)配套資源豐富
為方便教學(xué)和自學(xué),本書(shū)配套有《C++程序設(shè)計(jì)習(xí)題與上機(jī)指導(dǎo)》,以及教學(xué)PPT、例題源代碼等,力求幫助讀者通過(guò)具體實(shí)踐掌握C++的編程方法。
本書(shū)閱讀建議:
。1)建議沒(méi)有基礎(chǔ)的讀者,從前向后順次閱讀,盡量不要跳躍。
。2)書(shū)中的實(shí)例和習(xí)題要親自上機(jī)動(dòng)手實(shí)踐,學(xué)習(xí)效果更好。
。3)課后習(xí)題不僅要給出代碼,最好能上機(jī)調(diào)試運(yùn)行,以加強(qiáng)和鞏固對(duì)知識(shí)點(diǎn)的理解和掌握。
本書(shū)由劉厚泉提出編寫(xiě)計(jì)劃和結(jié)構(gòu)安排,其中劉厚泉編寫(xiě)第1—2章,李政偉編寫(xiě)第3~4、7章,葛欣編寫(xiě)第5~6章、席景科編寫(xiě)第10~11章、薛猛編寫(xiě)第8~9章、徐東紅編寫(xiě)第12~13章,最后由李政偉統(tǒng)稿。
本書(shū)的編寫(xiě)參考了大量的同類(lèi)書(shū)籍。在此,我們向有關(guān)的作譯者表示衷心的感謝。
由于C++程序設(shè)計(jì)涉及的內(nèi)容非常豐富,限于編者水平有限,書(shū)中個(gè)別地方難免有疏漏,敬請(qǐng)讀者批評(píng)指正。
編者
前言
第1章 C++基礎(chǔ)
1.1程序設(shè)計(jì)語(yǔ)言簡(jiǎn)介
1.2C++語(yǔ)言的特點(diǎn)與程序結(jié)構(gòu)
1.3過(guò)程型程序設(shè)計(jì)
1.4面向?qū)ο蟪绦蛟O(shè)計(jì)
1.5程序設(shè)計(jì)環(huán)境
1.6小結(jié)
習(xí)題
第2章 基本數(shù)據(jù)類(lèi)型與運(yùn)算符
2.1基本數(shù)據(jù)類(lèi)型
2.2常量
2.3變量
2.4賦值與算術(shù)運(yùn)算符
2.5邏輯運(yùn)算符和關(guān)系運(yùn)算符
2.6其他運(yùn)算符
2.7運(yùn)算符的優(yōu)先級(jí)與結(jié)合性
2.8數(shù)據(jù)類(lèi)型的轉(zhuǎn)換
2.9小結(jié)
習(xí)題
第3章 程序控制
3.1選擇結(jié)構(gòu)
3.2循環(huán)結(jié)構(gòu)
3.3跳轉(zhuǎn)結(jié)構(gòu)
3.4應(yīng)用實(shí)例
3.5小結(jié)
習(xí)題
第4章 函數(shù)
4.1概述
4.2函數(shù)的定義與聲明
4.3函數(shù)的調(diào)用
4.4默認(rèn)值參數(shù)
4.5函數(shù)重載
4.6函數(shù)模板
4.7函數(shù)的嵌套調(diào)用
4.8遞歸函數(shù)
4.9作用域
4.10存儲(chǔ)類(lèi)別
4.11內(nèi)部函數(shù)和外部函數(shù)
4.12預(yù)處理指令
4.13應(yīng)用實(shí)例
4.14小結(jié)
習(xí)題
第5章 數(shù)組
5.1一維數(shù)組的定義與初始化
5.2一維數(shù)組的使用
5.3一維數(shù)組與函數(shù)
5.4二維數(shù)組
5.5字符數(shù)組
5.6string類(lèi)型
5.7應(yīng)用實(shí)例
5.8小結(jié)
習(xí)題
第6章 指針與引用
6.1指針的定義與初始化
6.2指針的使用
6.3指針與數(shù)組
6.4指針與字符串
6.5指針與函數(shù)
6.6引用
6.7應(yīng)用實(shí)例
6.8小結(jié)
習(xí)題
第7章 自定義數(shù)據(jù)類(lèi)型
7.1結(jié)構(gòu)體類(lèi)型
7.2結(jié)構(gòu)體的使用
7.3單向鏈表
7.4共用體類(lèi)型
7.5枚舉類(lèi)型
7.6類(lèi)型定義typedef
7.7小結(jié)
習(xí)題
第8章 類(lèi)(Ⅰ)
8.1類(lèi)的定義
8.2對(duì)象
8.3構(gòu)造函數(shù)
8.4析構(gòu)函數(shù)
8.5靜態(tài)成員
8.6應(yīng)用實(shí)例
8.7小結(jié)
習(xí)題
第9章 類(lèi)(Ⅱ)
9.1對(duì)象的存儲(chǔ)
9.2this指針
9.3信息的保護(hù)
9.4友元
9.5類(lèi)模板
9.6*C++標(biāo)準(zhǔn)模板庫(kù)(STL)
9.7應(yīng)用實(shí)例
9.8小結(jié)
習(xí)題
第10章 運(yùn)算符重載
10.1什么是運(yùn)算符重載
10.2運(yùn)算符重載規(guī)則
10.3運(yùn)算符重載的實(shí)現(xiàn)形式
10.4應(yīng)用實(shí)例
10.5小結(jié)
習(xí)題
第11章 繼承與派生
11.1類(lèi)的繼承與派生
11.2類(lèi)的繼承方式
11.3派生類(lèi)的構(gòu)造函數(shù)和析構(gòu)函數(shù)
11.4多重繼承
11.5應(yīng)用實(shí)例
11.6小結(jié)
習(xí)題
第12章 虛函數(shù)與多態(tài)性
12.1多態(tài)性的概念
12.2虛函數(shù)的定義
12.3純虛函數(shù)與抽象類(lèi)
12.4應(yīng)用實(shí)例
12.5小結(jié)
習(xí)題
第13章 C++輸入/輸出流
13.1C++的輸入/輸出流
13.2標(biāo)準(zhǔn)輸入/輸出流
13.3文件與文件流
13.4應(yīng)用實(shí)例
13.5小結(jié)
習(xí)題
附錄 標(biāo)準(zhǔn)字符ASCII碼表
參考文獻(xiàn)
1.1.1程序設(shè)計(jì)語(yǔ)言是人機(jī)交互的重要介質(zhì)
人們?cè)谑褂糜?jì)算機(jī)解決復(fù)雜問(wèn)題時(shí),需要通過(guò)程序表達(dá)意圖和步驟,這通常包含兩個(gè)階段,第一個(gè)階段是對(duì)問(wèn)題進(jìn)行分析和描述,明確做什么和怎么做;第二個(gè)階段是使用程序設(shè)計(jì)語(yǔ)言編寫(xiě)程序,將解決問(wèn)題的方法和步驟交由計(jì)算機(jī)執(zhí)行。學(xué)好程序設(shè)計(jì)也包含兩方面的內(nèi)容,一方面要熟練掌握程序設(shè)計(jì)語(yǔ)言的使用方法,另一方面也要學(xué)會(huì)用計(jì)算機(jī)思維來(lái)分析和表達(dá)現(xiàn)實(shí)世界的問(wèn)題。
1.1.2程序設(shè)計(jì)語(yǔ)言的發(fā)展概況
計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的發(fā)展,經(jīng)歷了從機(jī)器語(yǔ)言、匯編語(yǔ)言到高級(jí)語(yǔ)言的歷程。
(1)機(jī)器語(yǔ)言
機(jī)器語(yǔ)言是第一代計(jì)算機(jī)語(yǔ)言。機(jī)器語(yǔ)言程序由一串串使用“O”和“l(fā)”編碼的指令序列構(gòu)成,計(jì)算機(jī)硬件可以直接理解這種二進(jìn)制形式表示的指令,并完成相應(yīng)的操作。機(jī)器語(yǔ)言依賴(lài)于特定型號(hào)的計(jì)算機(jī)硬件,具有很高的運(yùn)行效率。雖然對(duì)機(jī)器來(lái)說(shuō)理解和執(zhí)行這種語(yǔ)言都十分簡(jiǎn)單,但是對(duì)程序員來(lái)說(shuō)程序的編寫(xiě)、閱讀和修改都很困難,而且由于每臺(tái)計(jì)算機(jī)的指令系統(tǒng)各不相同,在一臺(tái)計(jì)算機(jī)上執(zhí)行的程序很難移植到另一臺(tái)計(jì)算機(jī)上執(zhí)行,因此加重了程序設(shè)計(jì)者的負(fù)擔(dān)。
。2)匯編語(yǔ)言
匯編語(yǔ)言是第二代計(jì)算機(jī)語(yǔ)言。為了減輕使用機(jī)器語(yǔ)言編程的不便,人們嘗試用一些簡(jiǎn)潔的英文符號(hào)來(lái)替代指令中特定的二進(jìn)制串,比如用“ADD”表示加法,用“MOV”表示數(shù)據(jù)傳遞等。這種用英文和數(shù)字符號(hào)組成的語(yǔ)言稱(chēng)為匯編語(yǔ)言。與機(jī)器語(yǔ)言相比,匯編語(yǔ)言程序易于閱讀和理解,方便了程序的編寫(xiě)和維護(hù)。計(jì)算機(jī)并不能直接理解匯編語(yǔ)言的指令,在程序運(yùn)行之前,需要通過(guò)專(zhuān)門(mén)的程序?qū)⑵浞g成二進(jìn)制形式的機(jī)器語(yǔ)言程序,再交由機(jī)器執(zhí)行。匯編語(yǔ)言也同樣十分依賴(lài)于機(jī)器硬件,雖然移植性不好,但是程序精煉而質(zhì)量高,所以至今仍在使用。
……