面向對象程序設計(C++)

高洪皓

  • 出版商: 電子工業
  • 出版日期: 2026-04-01
  • 定價: $359
  • 售價: $358
  • 語言: 簡體中文
  • 頁數: 272
  • ISBN: 7121525690
  • ISBN-13: 9787121525698
  • 相關分類: C++ 程式語言
  • 下單後立即進貨 (約4週~6週)

商品描述

全書分為10章,前8章內容涵蓋C++的核心概念與高級特性,核心概念部分闡述面向對象概念,包括封裝、繼承、多態、友元、C++模板及泛型編程,高級特性部分則涉及運算符重載、輸入/輸出流、異常處理、標準模板庫(STL)等。第9章介紹經典設計模式,第10章介紹C++新特性。本書內容將理論基礎與實踐案例相結合,其中的代碼均在C++11和C++20環境下調試通過,旨在幫助讀者將所學知識轉化為實際編程能力。每章後以二維碼形式給出習題及解答。本書可以作為C語言的進階教材,專為高等院校計算機專業高級程序設計課程編寫,不僅適合具備程序設計基礎的學生學習,也可供有一定編程經驗的開發人員參考。

目錄大綱

第1章 C++基本語法 1
1.1 輸入與輸出操作 1
1.1.1 輸入與輸出 1
1.1.2 字符串的輸入與輸出 3
1.2 bool類型 4
1.2.1 bool類型的聲明和初始化 4
1.2.2 bool類型的運算符和表達式 5
1.2.3 bool類型的隱式轉換 5
1.3 引用機制 6
1.3.1 引用的定義和特性 6
1.3.2 引用與指針的區別 6
1.4 函數重載 8
1.5 默認參數 9
1.6 for循環 11
1.6.1 傳統for循環 11
1.6.2 範圍for循環 12
1.7 string類型 12
1.8 const關鍵字 16
1.8.1 常量指針 16
1.8.2 指針常量 16
1.8.3 指向常量的常量指針 16
1.9 動態內存管理 17
1.9.1 內存空間 17
1.9.2 malloc()和free() 18
1.9.3 new和delete運算符 18
第2章 封裝與繼承 22
2.1 封裝 22
2.1.1 類和對象 22
2.1.2 封裝的特點 24
2.1.3 成員屬性和成員函數 26
2.1.4 struct和class的區別 35
2.1.5 內部類 37
2.1.6 對象的存儲結構和this指針 38
2.2 構造和析構 40
2.2.1 構造函數和析構函數 40
2.2.2 拷貝構造函數 44
2.2.3 淺拷貝和深拷貝 46
2.2.4 初始化列表 48
2.3 繼承 49
2.3.1 繼承的基本語法 50
2.3.2 繼承方式 51
2.3.3 重寫 54
2.3.4 繼承中的構造函數和析構函數 56
2.3.5 多繼承 58
2.3.6 虛基類和虛繼承 64
第3章 多態與友元 67
3.1 多態 67
3.1.1 多態的基本概念 67
3.1.2 虛函數和抽象類 71
3.1.3 虛析構函數和純虛析構函數 78
3.2 友元 80
3.2.1 友元函數 80
3.2.2 友元類 81
3.2.3 成員函數作為友元函數 82
第4章 C++模板和泛型編程 84
4.1 模板的概念 84
4.2 函數模板 84
4.2.1 函數模板的語法 84
4.2.2 顯式實例化與隱式實例化 85
4.2.3 值傳參和引用傳參 86
4.2.4 默認模板參數 87
4.3 類模板 87
4.3.1 類模板的語法 87
4.3.2 類模板作為函數參數 88
4.3.3 成員函數的類外實現 91
4.3.4 類模板與繼承 91
4.4 模板特化 94
4.4.1 完全特化 94
4.4.2 偏特化 95
4.5 標準類模板 97
4.5.1 vector 97
4.5.2 array 102
4.5.3 數組與類模板的比較 107
第5章 運算符重載 108
5.1 運算符重載概述 108
5.2 雙目運算符的重載 110
5.2.1 加法運算符的重載 110
5.2.2 減法運算符的重載 111
5.2.3 賦值運算符的重載 111
5.2.4 乘法和除法運算符的重載 112
5.2.5 比較運算符的重載 113
5.3 單目運算符的重載 114
5.3.1 前置和後置自增運算符的重載 114
5.3.2 前置和後置自減運算符的重載 116
5.3.3 邏輯非和按位取反運算符的重載 117
5.3.4 正號和負號運算符的重載 118
5.4 運算符重載的三種方法 119
5.4.1 用成員函數重載運算符 119
5.4.2 用友元函數重載運算符 120
5.4.3 用全局函數重載運算符 121
5.4.4 三種方法的對比 121
5.5 特殊運算符的重載 121
5.5.1 >>和<<運算符的重載 122
5.5.2 類型轉換運算符的重載 123
5.5.3 []運算符的重載 123
第6章 C++輸入/輸出流和文件讀/寫 125
6.1 標準I/O庫 125
6.2 標準輸入/輸出流 125
6.3 文件流 127
6.4 條件狀態 131
6.5 字符串流 133
第7章 異常處理 137
7.1 異常處理的語法 137
7.2 標準異常 138
7.2.1 exception類 138
7.2.2 runtime_error類 138
7.2.3 logic_error類 139
7.2.4 其他標準異常類 139
7.3 異常對象 141
7.3.1 異常對象的類型 141
7.3.2 異常對象的生命周期 142
7.3.3 異常傳播與棧展開 142
7.4 異常處理的註意事項 143
7.4.1 異常安全性 143
7.4.2 異常處理的開銷 144
7.4.3 避免空catch塊 146
7.4.4 異常處理策略的選擇 146
第8章 標準模板庫 150
8.1 容器 150
8.1.1 容器的分類 150
8.1.2 容器的使用 151
8.2 疊代器 166
8.2.1 疊代器的概念 166
8.2.2 疊代器的類型 167
8.2.3 疊代器的解引用 172
8.3 STL算法 175
8.3.1 算法的分類 176
8.3.2 典型算法的實現函數 176
8.4 函數對象 185
8.4.1 基本概念 185
8.4.2 謂詞 187
8.4.3 內建函數對象 188
第9章 經典設計模式 189
9.1 設計模式簡介 189
9.2 創建型模式 190
9.2.1 單例模式 191
9.2.2 工廠方法模式和抽象工廠模式 198
9.2.3 原型模式 204
9.3 結構型模式 207
9.3.1 適配器模式 207
9.3.2 代理模式 212
9.3.3 組合模式 214
9.4 行為型模式 218
9.4.1 模板方法模式 218
9.4.2 解釋器模式 220
9.4.3 策略模式 224
9.4.4 命令模式 226
9.4.5 觀察者模式 230
9.5 學習與實踐建議 233
第10章 C++新特性 234
10.1 C++11新特性 234
10.1.1 初始化列表 234
10.1.2 Lambda表達式 237
10.1.3 聲明 238
10.1.4 區間疊代 243
10.1.5 initializer_list 244
10.1.6 回調函數 246
10.2 C++20新特性 247
10.2.1 模塊 247
10.2.2 協程 248
10.2.3 概念 254
10.2.4 三向比較運算符 255
10.2.5 範圍 256
10.2.6 數字分隔符 257
10.2.7 字符串格式化 258
10.3 C++23新特性 259
10.3.1 if consteval 259
10.3.2 多維下標運算符 260
10.3.3 靜態operator() 260
10.3.4 print() 261
10.3.5 expected 261
10.3.6 範圍庫增強 262
參考文獻 264