從 C 到 C++ 精通面向對象編程

曾凡鋒 孫晶 肖珂 李源

  • 出版商: 清華大學
  • 出版日期: 2022-11-01
  • 定價: $414
  • 售價: 8.0$331
  • 語言: 簡體中文
  • ISBN: 7302619557
  • ISBN-13: 9787302619550
  • 相關分類: C++ 程式語言
  • 立即出貨

  • 從 C 到 C++ 精通面向對象編程-preview-1
  • 從 C 到 C++ 精通面向對象編程-preview-2
  • 從 C 到 C++ 精通面向對象編程-preview-3
從 C 到 C++ 精通面向對象編程-preview-1

買這商品的人也買了...

商品描述

本書結合大量實例詳細介紹了C++語言的編程思想和核心技術,培養讀者由C程序員成長為C++程序員。本書結合C++實際項目開發,詳解C++語言的編程思想和核心技術,培養讀者由C程序員成長為C++程序員。 本書共分為11章,其中第1~、2章介紹C++基礎知識和擴充知識,第3~、4章從類和對象入手,深入剖析類的相關知識,第5~、6章分別介紹面向對象編程的繼承和多態性,第7~、8章介紹運算符重載和輸入/輸出流,第9~、10章介紹異常處理、命名字空間和模板,第11章介紹現代C++技術。每一章都會包含一些實例,通過這些實例將本章介紹的內容知識以及前面章節中介紹過的內容知識串聯起來,最後的習題為讀者提供了使用面向對象編程的練習。 本書既適合作為C++初學者的入門書,也適合用作高等院校電腦類相關專業開設面向對象程序設計課程的教學用書。

目錄大綱

目    錄

第1章  C++基礎知識 1

1.1  C/C++歷史 1

1.2  C++開發環境 2

1.2.1  Microsoft Visual Studio概述 2

1.2.2  Visual Studio 2019開發環境簡介 3

1.2.3  創建控制台應用程序 8

1.3  C++編程入門 11

1.4  面向對象程序設計 15

1.4.1  基本概念 15

1.4.2  面向對象程序設計的特點 17

1.4.3  面向對象程序設計和麵向過程程序設計的比較 18

1.4.4  面向對象的軟件開發方法 18

1.5  本章小結 20

本章習題 21

第2章  C++擴充知識 22

2.1  C++標準庫頭文件 22

2.2  字符串類 23

2.2.1  定義字符串變量 23

2.2.2  字符串的賦值和連接 24

2.2.3  字符串的比較 24

2.2.4  字符串替換 24

2.2.5  string類的特性 24

2.3  const定義常量 26

2.4  引用和引用參數 26

2.4.1  引用 26

2.4.2  引用參數 28

2.4.3  引用的特別說明 29

2.5  函數聲明和實參類型轉換 29

2.6  默認實參 30

2.7  作用域和作用域運算符 31

2.8  函數重載 32

2.9  內置(內聯)函數 34

2.10  使用new和delete運算符動態管理內存 35

2.11  本章小結 37

本章習題 38

第3章  類和對象 39

3.1  類和對象簡介 39

3.1.1  類的聲明 41

3.1.2  對象和實例化 42

3.2  成員函數的聲明和定義 43

3.3  數據成員的聲明及設置函數與獲取函數 44

3.3.1  數據成員的聲明 44

3.3.2  設置函數和獲取函數 44

3.4  成員函數的存儲和this指針 46

3.5  使用構造函數初始化對象 49

3.5.1  構造函數的聲明和定義 49

3.5.2  默認構造函數 51

3.5.3  帶默認實參的構造函數 52

3.5.4  參數初始化列表 53

3.5.5  轉換構造函數 54

3.6  析構函數 55

3.7  何時調用構造函數和析構函數 57

3.8  類的可重用性 59

3.8.1  一個類對應一個獨立文件 59

3.8.2  接口和實現的分離 60

3.9  C++空類說明 62

3.10  本章小結 62

本章習題 64

第4章  類的深入剖析 65

4.1  類的作用域和類成員的訪問 65

4.1.1  隱藏機制 66

4.1.2  對象訪問類的成員 67

4.1.3  對象指針訪問類的成員 67

4.1.4  對象引用訪問類的成員 67

4.1.5  類成員訪問的例子 68

4.2  對象的賦值和復制 68

4.2.1  對象的賦值 68

4.2.2  對象的復制 70

4.3  const對象和const成員函數 73

4.3.1  const對象 73

4.3.2  const成員函數 73

4.3.3  mutable數據成員 75

4.3.4  const對象和const成員函數的說明 75

4.4  類作為函數參數 75

4.5  動態創建和刪除對象 78

4.6  static類成員 80

4.7  友元函數和友元類 83

4.8  組合 85

4.9  本章小結 88

本章習題 89

第5章  面向對象編程之繼承 91

5.1  繼承 91

5.2  基類和派生類 92

5.2.1  C++繼承機制 92

5.2.2  派生類的聲明方式 93

5.2.3  派生類對象的構成 95

5.3  派生類成員的訪問 96

5.3.1  protected成員 97

5.3.2  不同繼承方式下派生類訪問基類成員 99

5.3.3  多級繼承的成員訪問 101

5.3.4  繼承下成員訪問的規則 103

5.4  public、protected和private繼承 103

5.5  基類和派生類的關系 105

5.5.1  替換原則 105

5.5.2  基類與派生類的轉換 106

5.5.3  派生類對基類同名成員的隱藏 109

5.6  派生類的構造函數和析構函數 109

5.6.1  簡單派生類的構造函數 110

5.6.2  組合方式下派生類的構造函數 111

5.6.3  多級繼承時派生類的構造函數 113

5.6.4  派生類的析構函數 115

5.6.5  派生類構造函數的顯式定義 116

5.7  多繼承和虛基類 117

5.7.1  多繼承的聲明方法及派生類構造函數 117

5.7.2  多繼承下基類同名成員的二義性問題 117

5.7.3  虛基類 118

5.8  本章小結 121

本章習題 122

第6章  面向對象編程之多態性 124

6.1  多態性 124

6.2  典型的多態性實例 125

6.3  虛函數和多態性 126

6.3.1  非虛函數和靜態綁定 126

6.3.2  虛函數和動態綁定 128

6.3.3  基類對象調用虛函數 131

6.3.4  多態性對比 132

6.4  抽象類和純虛函數 132

6.4.1  實例研究 132

6.4.2  抽象類 135

6.5  多態下的構造函數和析構函數 138

6.5.1  構造函數能否是虛函數 138

6.5.2  虛析構函數 138

6.5.3  構造函數和析構函數中的多態性 140

6.6  向下強制類型轉換(選修) 142

6.7  多態性的底層實現機制(選修) 144

6.8  本章小結 146

本章習題 147

第7章  運算符重載 149

7.1  運算符重載的基礎知識 149

7.1.1  為什麽要重載運算符 150

7.1.2  運算符重載的方法 152

7.2  運算符重載的規則 152

7.3  類成員函數和全局函數重載運算符的比較 154

7.3.1  使用類成員函數重載運算符 154

7.3.2  使用全局函數重載運算符 154

7.3.3  兩種重載運算符函數的區別 155

7.4  重載一元運算符 155

7.5  重載二元運算符 157

7.6  重載流插入運算符和流提取運算符 159

7.7  類型轉換 161

7.7.1  類型轉換運算符 162

7.7.2  轉換構造函數 162

7.7.3  關鍵字explicit 163

7.8  重載自增和自減運算符 163

7.9  本章小結 165

本章習題 167

第8章  輸入/輸出流 169

8.1  流 170

8.1.1  C++流庫 170

8.1.2  C++流的主要類及繼承層次 171

8.2  輸出流 172

8.2.1  使用成員函數put輸出字符 172

8.2.2  使用成員函數write非格式化輸出 173

8.3  流的格式化輸出 173

8.4  輸入流 176

8.4.1  使用成員函數get讀入字符 176

8.4.2  使用成員函數getline讀入一行字符 178

8.4.3  使用成員函數read非格式化輸入 179

8.4.4  成員函數peek、putback和ignore 179

8.5  文件流和文件處理 179

8.5.1  文件和流 179

8.5.2  文件創建、打開與關閉 180

8.5.3  ASCII文件的操作 181

8.5.4  二進制文件的操作 185

8.6  本章小結 189

本章習題 190

第9章  異常處理和命名空間 191

9.1  異常處理 191

9.1.1  異常概述 191

9.1.2  異常處理機制 192

9.1.3  異常說明 195

9.1.4  構造函數、析構函數和異常處理 195

9.1.5  標準庫異常類層次 195

9.2  命名空間 196

9.2.1  如何定義命名空間 197

9.2.2  如何訪問命名空間的成員 197

9.2.3  標準命名空間std 198

9.2.4  命名空間的幾點說明 198

9.3  本章小結 198

本章習題 199

第10章  模板 201

10.1  函數模板 202

10.1.1  函數模板的定義和使用 202

10.1.2  函數模板的進一步說明 204

10.2  類模板 206

10.2.1  類模板的定義和使用 207

10.2.2  類模板的進一步說明 209

10.3  STL介紹 210

10.3.1  容器 211

10.3.2  算法 215

10.3.3  迭代器 218

10.3.4  函數對象 219

10.3.5  適配器 220

10.3.6  內存分配器 222

10.4  本章小結 222

本章習題 223

第11章  C++11 225

11.1  C++11簡介 225

11.2  C++11新特性 226

11.2.1  auto類型推斷 226

11.2.2  decltype類型推斷 226

11.2.3  初始化列表 227

11.2.4  Lambda表達式 227

11.2.5  連續右尖括號的改進 228

11.2.6  基於範圍的for循環 228

11.2.7  可變參數模板 229

11.2.8  nullptr 230

11.2.9  右值引用 230

11.2.10  顯式生成默認函數與顯式刪除函數 230

11.2.11  override和final 231

11.2.12  智能指針 231

11.2.13  tuple 231

11.3  C++11示例 232

11.4  本章小結 234

本章習題 234