C++程序設計(第三版)
-
【作 者】主編 曹岳輝 劉衛國
【I S B N 】978-7-5226-1115-0
【責任編輯】王玉梅
【適用讀者群】本專通用
【出版時間】2022-12-01
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數】320
【千字數】500
【印 張】20
【定 價】¥49
【叢 書】普通高等教育計算機類專業教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書全面介紹了面向過程和面向對象的C++程序設計方法,共10章,包括C++基礎知識、程序控制結構、函數與編譯預處理、數組與指針、自定義數據類型、類與對象、重載與模板、繼承與派生、多態性與虛函數、輸入/輸出流。
各章節選用大量程序設計實例介紹基本概念和程序設計方法,同時配有課后習題供讀者練習。本書配有輔導教材《C++程序設計實踐教程》(第三版),內容包括上機指導及章節練習。
本書語言表達嚴謹,文字流暢,內容通俗易懂、重點突出、實例豐富,且由淺入深、相互銜接、循序漸進,適合作為高等學校程序設計課程的教材,也適合廣大計算機愛好者閱讀參考。
內容豐富
全面介紹面向過程和面向對象的C++ 程序設計方法。
設計合理
組織、編排上注重由淺入深、深入淺出、循序漸進。
實用性強
精心選取大量實例,講解細致,拓展讀者解題思路。
隨著計算機技術的普及與提高,高等學校計算機基礎教學的內容也在不斷改革與發展。程序設計是大學生必須掌握的計算機知識。隨著軟件工程技術的不斷發展,面向對象程序設計方法已成為當今軟件開發的重要方法,一些新的開發環境不斷涌現,進一步推動了面向對象與可視化編程技術的發展與應用。因此,掌握面向對象程序設計方法已經成為大學生計算機應用與軟件開發能力的要求之一。
C++既兼容了C語言功能強、效率高、風格簡潔、滿足包括系統程序設計和應用程序設計的大多數任務需求的特點,又擴充了面向對象部分,即支持類、繼承、派生、多態性等,解決了其代碼的重用問題。C++實際上是既支持面向過程的結構化程序設計,又支持面向對象的程序設計的語言,所以,我們根據多年的實際教學經驗,在程序設計課程教學改革研究時,選用C++作為程序設計課程的語言。對于本書內容的選擇,我們力求面向讀者的學習需要,全面介紹面向過程和面向對象的C++程序設計方法,讓讀者首先接受面向對象的程序設計思想方法,并理解面向對象程序設計是需要面向過程程序設計方法作為基礎的。
本書保留了原有章節,共10章:第1~5章以介紹面向過程的程序設計為主;第6~10章以介紹面向對象的基本思想與方法為主。章節內容重新整合,使得在內容組織上更加合理。
本著加強基礎、注重實踐、突出應用的原則,本書力求有較強的可讀性、適用性和先進性。我們的教學理念是:教學是教思想、教方法,真正做到“授人以魚,不如授人以漁”。為了提高讀者對程序設計思想方法的理解,本書結合相應章節的內容選用了大量的實例,通過實例的講解,拓展讀者解題思路,提高讀者的程序設計能力。
本書所給出的程序示例均在Visual Studio 2022環境下進行了調試和運行。為了幫助讀者更好地學習C++程序設計,編者還編寫了配套教材《C++程序設計實踐教程》(第三版),內容包括上機指導及章節練習。
本書由曹岳輝、劉衛國任主編,李利明、嚴暉任副主編。參編人員有楊長興、李小蘭、周春艷、趙穎、周欣然、呂格莉、蔡旭暉等。本書在編寫過程中,得到了中南大學計算機基礎教學實驗中心全體教師的大力支持,在此表示衷心的感謝。
由于編者學識水平有限,書中疏漏在所難免,懇請廣大讀者批評指正。
第1章 C++基礎知識 1
1.1 程序設計語言的基本概念 1
1.2 C++程序的基本結構 2
1.2.1 C++程序結構 2
1.2.2 C++程序的書寫格式 4
1.2.3 C++集成開發環境 4
1.3 C++的詞法規則 5
1.3.1 C++的字符集組成 5
1.3.2 C++的標識符與關鍵字 5
1.4 C++基本數據類型 6
1.5 常量與變量 8
1.5.1 常量 8
1.5.2 變量 11
1.6 運算符與表達式 12
1.6.1 算術運算符與算術表達式 12
1.6.2 關系運算符與關系表達式 14
1.6.3 邏輯運算符與邏輯表達式 15
1.6.4 位運算符與位運算表達式 16
1.6.5 賦值運算符與賦值表達式 17
1.6.6 三目運算符與三目條件表達式 19
1.6.7 逗號運算符與逗號表達式 20
1.6.8 指針運算 20
1.6.9 運算符的優先級及結合性 21
1.6.10 類型轉換 23
習題1 24
第2章 程序控制結構 28
2.1 順序結構 28
2.1.1 定義語句 28
2.1.2 表達式語句 28
2.1.3 復合語句 29
2.1.4 空語句 29
2.1.5 基本輸入/輸出 29
2.2 選擇結構 32
2.2.1 if語句 32
2.2.2 switch語句 37
2.3 循環結構 39
2.3.1 while 語句 39
2.3.2 do…while語句 41
2.3.3 for 語句 43
2.3.4 多重循環 45
2.4 控制轉向語句 48
2.4.1 break語句 48
2.4.2 continue 語句 49
2.4.3 goto語句 50
2.5 程序實例 50
習題2 56
第3章 函數與編譯預處理 60
3.1 函數的概念 60
3.2 函數的定義與調用 61
3.2.1 標準庫函數 61
3.2.2 函數的定義 62
3.2.3 函數的聲明 63
3.2.4 函數的調用 64
3.3 函數的參數傳遞 67
3.3.1 參數的傳遞方式 67
3.3.2 參數的默認值 69
3.4 遞歸函數 70
3.5 內置函數 75
3.6 變量和函數的屬性 76
3.6.1 變量的作用域 76
3.6.2 變量的生存期 81
3.6.3 內部函數和外部函數 85
3.7 編譯預處理 86
3.7.1 宏定義 87
3.7.2 文件包含 89
習題3 90
第4章 數組與指針 95
4.1 數組及其應用 95
4.1.1 數組的概念 95
4.1.2 一維數組 96
4.1.3 二維數組 101
4.1.4 數組作函數參數 106
4.2 指針及其應用 109
4.2.1 指針的概念 109
4.2.2 指針變量的定義及初始化 110
4.2.3 指針的運算 111
4.2.4 指針作函數參數 113
4.2.5 返回指針值的函數 115
4.2.6 指向函數的指針 117
4.3 指針與數組 119
4.3.1 指針與一維數組 119
4.3.2 數組名與指針作函數參數 121
4.3.3 指針與二維數組 122
4.4 字符串 126
4.4.1 字符串的概念 126
4.4.2 字符串的存儲表示法 126
4.4.3 字符串的輸入/輸出 128
4.4.4 字符串函數 129
4.4.5 字符串的簡單應用舉例 131
4.5 指針數組與多級指針 135
4.5.1 指針數組 135
4.5.2 多級指針 137
4.6 引用 138
4.6.1 變量的引用 138
4.6.2 引用作函數參數 139
4.6.3 引用作函數返回值 139
習題4 140
第5章 自定義數據類型 142
5.1 結構體類型 142
5.1.1 結構體類型的定義 142
5.1.2 結構體變量的定義 143
5.1.3 結構體變量的引用與初始化 144
5.1.4 結構體數組 146
5.1.5 結構體與函數 148
5.1.6 鏈表 150
5.2 共用體類型 155
5.2.1 共用體類型與共同體變量的定義 155
5.2.2 共用體變量的引用 156
5.2.3 共用體與結構體的聯合使用 157
5.3 枚舉類型 159
5.4 自定義類型 160
習題5 161
第6章 類與對象 164
6.1 從面向過程到面向對象 164
6.1.1 面向對象程序設計的基本概念 164
6.1.2 C++面向對象程序的結構 165
6.2 類與對象的定義 167
6.2.1 類的定義 167
6.2.2 對象的定義與使用 169
6.2.3 類與結構體的區別 171
6.3 對象的初始化 172
6.3.1 構造函數 172
6.3.2 析構函數 176
6.3.3 復制構造函數 177
6.4 對象數組與對象指針 180
6.4.1 對象數組 180
6.4.2 對象指針 182
6.4.3 指向類成員的指針 183
6.4.4 this指針 185
6.5 靜態成員 186
6.5.1 靜態數據成員 186
6.5.2 靜態成員函數 187
6.6 友元 189
6.6.1 友元函數 189
6.6.2 友元類 190
6.7 常對象和常成員 191
6.7.1 常對象和常成員函數 191
6.7.2 常數據成員 193
6.8 程序實例 194
習題6 201
第7章 重載與模板 207
7.1 重載 207
7.1.1 函數重載 207
7.1.2 運算符重載 212
7.2 模板 229
7.2.1 函數模板 229
7.2.2 類模板 231
7.3 應用實例 233
習題7 242
第8章 繼承與派生 245
8.1 繼承與派生的概念 245
8.1.1 基類與派生類 245
8.1.2 繼承與派生的作用 246
8.1.3 派生類的聲明 247
8.2 派生類成員的訪問控制 248
8.2.1 private、protected與public類成員 248
8.2.2 三種派生方式的定義 250
8.2.3 派生類成員訪問控制規則 254
8.3 派生類的構造函數和析構函數 255
8.3.1 派生類的構造函數和析構函數的
聲明 255
8.3.2 派生類的構造函數和析構函數的
構造規則 256
8.3.3 派生類的構造函數和析構函數的
調用順序 257
8.4 多重繼承 258
8.4.1 多重繼承的聲明與引用 258
8.4.2 虛基類 260
8.5 基類和派生類的轉換 264
8.6 繼承與組合 264
習題8 265
第9章 多態性與虛函數 267
9.1 多態性的概念 267
9.1.1 編譯時的多態性 267
9.1.2 運行時的多態性 269
9.2 虛函數 271
9.2.1 虛函數的作用 271
9.2.2 虛函數的使用 274
9.2.3 多重繼承與虛函數 276
9.2.4 虛析構函數 277
9.3 純虛函數與抽象類 279
9.3.1 純虛函數 279
9.3.2 抽象類 280
9.4 抽象類實例 280
習題9 284
第10章 輸入/輸出流 286
10.1 C++的輸入/輸出 286
10.1.1 C++流的概念 286
10.1.2 C++流類庫 287
10.1.3 與iostream類庫有關的頭文件 289
10.1.4 插入與提取運算符的重載 289
10.2 標準輸入/輸出流 290
10.2.1 標準流類 290
10.2.2 格式控制成員函數 291
10.2.3 數據輸入/輸出成員函數 293
10.3 文件操作與文件流 296
10.3.1 文件的概念 296
10.3.2 文本文件的讀/寫 297
10.3.3 二進制文件的讀/寫 300
10.3.4 文件的隨機讀/寫 303
10.4 字符串流 307
10.4.1 字符串流的概念 307
10.4.2 字符串流的輸入操作 308
10.4.3 字符串流的輸出操作 309
習題10 310
參考文獻 314
- C程序設計實踐教程 [劉衛國]
- C程序設計(慕課版) [劉衛國]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- SwiftUI完全開發 [李智威 著]
- MySQL數據庫項目式教程 [陳亞峰]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]
- C語言程序設計(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現實應用開發實踐 [主 編 劉龍]
- Python程序設計 [主編 姜春磊 陳虹潔]
- C語言程序設計實踐教程(活頁式) [主編 鄭茵 陳巍 滕泓虬]
- 面向對象程序設計 [主編 張勇 張平華 趙小龍]
- Python程序設計基礎及實戰 [主編 劉健]
- C語言程序設計 [姜雪]
- Python程序設計實踐教程 [王鶴琴 蔡正保]
- C++程序設計實踐教程(第三版) [主編 劉衛國 曹岳輝]
- C語言程序設計項目化教程(活頁式) [主編 張利華 潘曉利]
- 機器人流程自動化(RPA)實戰——基于UiPath [主編 金鑫]
- Python 語言程序設計實踐指導 [主編 張雙獅]
- Python程序設計案例教程 [主編 毛錦庚 鐘肖英 周賢來 ]
- 基于.NET Core框架的分布式系統架構設計 [湯佳 著]
- Python語言程序設計教程 [郭其標 房宜汕]
- Python程序設計 [李國燕 王新強 劉佳 等編著]
- Python程序設計項目化教程(活頁式) [主編 盧鳳偉]
- Java編程基礎案例式教程 [主編 陳艷華 唐春蘭]
- Python語言同步案例習題精解 [主編 肖朝暉]
- Unity應用開發與實戰(微課版) [主 編 程永恒]
- PHP程序設計項目化教程 [主 編 杜海穎]
- 簡單易懂的Python入門教程 [[日]大澤文孝 著]
- Python數據分析之道——Thinking in Pandas [[美]漢娜·斯捷潘內克(Hannah S]