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