從零開始學C++

從零開始學C++

函式的定義 成員函式的定義 函式模板的定義

基本信息

內容簡介

從零開始學C++

本書由淺入深、循序漸進地講解如何使用C++開發環境。本書採用理論與實踐相結合的寫作方法,不僅使讀者對C++的語法有全面的了解,而且能讓讀者從實踐中得到清晰的思路。

本書全面地講述了C++語言中的各個知識點,共包括四篇,內容包括C++概述、C++開發利器大集合、C++初次編程、C++的數據類型、運算符和表達式、分解C++——語句、數組的使用、靈活的指針、函式的使用、變數的生存範圍、讓數據到文本中去——檔案的操作、預編譯、字元串的處理、類和對象、財富的積累——繼承、讓程式變得更短——模板、代碼的工廠——虛擬和多態、讓系統變得更健康——異常處理等內容。在本書的每一章中都對相應的知識進行了串燒,有利於學習者系統地複習所學知識。

本書配有DVD光碟1張,內容為本書的實例檔案和作者專門為本書錄製的全程多媒體語音教學視頻。

本書不僅適合C++語言的初學者,還適合C++語言編程愛好者和有志於使用C++語言進行編程的程式設計師作為參考和學習用書使用。

前言

如果沒有學習C語言,那就直接從C++開始吧!

——Bjarne Stroustrup(C++之父)

C/C++語言仍舊是使用範圍最多的計算機程式語言,使用C/C++語言開發出來的軟體遍及到生活中的各個領域,且具有較高的性能和穩定性。相比較其他語言而言,其優勢更加明顯,例如,同樣在Windows操作環境下,同時打開使用C++開發的軟體和使用Java開發的軟體,前者的啟動速度明顯高於後者。

在剛開始學習C++語言的時候,有些學習者很難找到一本合適的入門書籍,學習過程中充滿著迷惑,往往不知道該怎么入手。本書在編寫過程中充分考慮了這種情況,使讀者在掌握理論知識的同時,實際的編程能力也會得到很大提高,本書的每個例子都進行了詳細解釋,並在程式後面附上了運行結果,真正實現了理論與實際相結合的學習方法。

本書的特點

C++語言的流行,使越來越多的人加入到C++學習的大軍中,但是在實際的學習過程中很難找到一本真正適合C++初學者的教材,因此,市場上急需一本能夠真正為初學者提供的參考書,從而適合各種類型的人員進行C++的學習。作者在經過了深思熟慮之後,結合實際的情況對書本進行了編排,其特點如下:

從零開始,即使是沒有任何編程基礎的各層次人員都可以進行流暢的學習。

內容翔實,基本覆蓋了C++程式語言的各個知識點,為學習者以後的深入學習奠定了基礎。

結合實際,從基本出發,對每一個程式都進行了實際的編程運行,保證了程式的正確性和可讀性。

語言通俗易懂,使枯燥的理論學習更加易於接受。

知識點介紹 準確、清晰是其顯著特點,一般放在每一節開始位置,讓零基礎的讀者了解相關概念,順利入門。

實例 書中出現的完整實例,以章節順序編號,便於檢索和循序漸進地學習、實踐,放在每節知識點介紹之後。

實例代碼 與實例編號對應,層次清楚、語句簡潔、注釋豐富,體現了代碼優美的原則,有利於讀者養成良好的代碼編寫習慣。對於大段程式,均在每行代碼前設定編號便於學習。

運行結果 對實例給出運行結果和對應圖示,幫助讀者更直觀地理解實例代碼。

習題 每章最後提供專門的測試習題,供讀者檢驗所學知識是否牢固掌握。

貼心的提示 為了便於讀者閱讀,全書還穿插著一些技巧、提示等小貼士,體例約定如下:

提示:通常是一些貼心的提醒,讓讀者加深印象或提供建議,或者解決問題的方法。

注意:提出學習過程中需要特別注意的一些知識點和內容,或者相關信息。

警告:對操作不當或理解偏差將會造成的災難性後果做警示,以加深讀者印象。

經作者多年的培訓和授課證明,以上講解方式是最適合初學者學習的方式,讀者按照這種方式,會非常輕鬆、順利地掌握本書知識。

2.實用超值的DVD光碟

為了幫助讀者比較直觀地學習,本書附贈DVD光碟,內容包括多媒體視頻、電子教案(PPT)和實例原始碼等。

 多媒體視頻

配有長達18小時手把手教學視頻,講解關鍵知識點界面操作和書中的一些綜合練習題。作者親自配音、演示,手把手教會讀者使用。

 電子教案(PPT)

本書可以作為高校相關課程的教材或課外輔導書,所以筆者特別為本書製作了電子教案(PPT),以方便老師教學使用。

3.提供完善的技術支持

本書提供了論壇,讀者可以在上面提問交流。另外,論壇上還有一些小的教程、視頻動畫和各種技術文章,可幫助讀者提高開發水平。

4.豐富的額外素材下載

相關的開發素材檔案。

適合閱讀本書的讀者

想從事編程,且對C++有興趣的人

各大中專院校的在校學生和相關授課老師

了解C++,但還需要進一步學習的人

其他編程愛好者

本書作者

本書主要由古超和瀋陽市電子技術學校的趙丹編寫。其他參與本書編寫的人員有昊燃、劉永純、曾光、張雙、朱照華、黃永湛、孟祥嵩、張賀軍、李勇、關濤、王岩、李曉白魏星,在此一併表示感謝!

目 錄

第1篇 C++入門

第1章 C++概述( 教學視頻:49分鐘) 15

1.1 C++與C 15

1.1.1 C語言 15

1.1.2 C++ 17

1.1.3 C和C++比較 17

1.2 程式和算法 19

1.2.1 程式 19

1.2.2 算法 19

1.3 程式設計方法 21

1.3.1 面向過程的程式設計 21

1.3.2 面向對象的程式設計 22

1.4 C++編程風格 24

1.5 C++編程的過程 25

1.6 本章小結 25

1.7 習題 26

第2章 C++開發利器大集合( 教學視頻:31分鐘) 27

2.1 Visual C++與集成開發環境 27

2.1.1 Visual C++概述 27

2.1.2 Visual C++ 6.0集成開發環境介紹 27

2.1.3 設定個性化的開發環境 32

2.1.4 創建一個簡單的程式 33

2.2 C++ Builder 34

2.2.1 C++ Builder IDE(集成開發環境)簡介 34

2.2.2 創建一個簡單的程式 35

2.3 Linux/UNIX下的C++開發工具 35

2.4 本章小結 36

2.5 習題 36

第3章 C++初次編程( 教學視頻:39分鐘) 37

3.1 初識輸入與輸出 37

3.2注釋符38

3.3 控制語句簡介 39

3.3.1 if語句 39

3.3.2 for語句 40

3.3.3 while語句 41

3.4 類 42

3.4.1 創建一個簡單的類 42

3.4.2 初識成員函式 43

3.5 一個簡單的C++程式 45

3.6 本章小結 47

3.7 習題 47

第2篇 C++的利器

第4章 C++的數據類型( 教學視頻:120分鐘) 48

4.1 基本內置類型48

4.1.1 整型 48

4.1.2 浮點型 50

4.2 常量 51

4.2.1 整數類型字面值常量 51

4.2.2 布爾型和字元型字面值常量 51

4.2.3 浮點型字面值常量 51

4.2.4 字元串字面值常量 51

4.3 變數 52

4.3.1 什麼是變數 52

4.3.2 變數名的確定 53

4.3.3 變數的聲明與定義 53

4.3.4 初始化變數 53

4.4 枚舉類型 54

4.5 自定義類型typedef 55

4.6 引用 55

4.7 const限定符 56

4.8 類類型 57

4.9 標準庫類型 58

4.9.1 string類型 58

4.9.2 順序容器類型 60

4.9.3 關聯容器類型 62

4.10 標準I/O庫類型 64

4.10.1 輸入輸出流 64

4.10.2 字元串流 65

4.11 本章小結 66

4.12 習題 66

第5章 運算符和表達式( 教學視頻:64分鐘) 67

5.1 算術運算符與算術表達式 67

5.1.1 算術運算符 67

5.1.2 算術表達式 68

5.2 關係運算符與關係表達式 69

5.2.1 關係運算符 69

5.2.2 關係表達式 70

5.3 邏輯運算符與邏輯表達式 70

5.3.1 邏輯運算符 70

5.3.2 邏輯表達式 71

5.4 賦值運算符與賦值表達式 72

5.4.1 賦值運算符 72

5.4.2 賦值表達式 73

5.5 條件運算符與條件表達式 74

5.6 逗號運算符與逗號表達式 74

5.7 自增和自減運算符及其表達式 75

5.8 sizeof運算符 76

5.9 箭頭運算符與點運算符 77

5.10 位運算符及其表達式 78

5.11 new和delete表達式 79

5.12 複合表達式 80

5.13 本章小結 82

5.14 習題 82

第6章 分解C++——語句( 教學視頻:63分鐘) 83

6.1 簡單語句 83

6.2 聲明語句 84

6.3 複合語句 85

6.4 語句的作用域 86

6.5 分支語句 86

6.5.1 條件語句 86

6.5.2 switch語句 91

6.6 循環語句 93

6.6.1 for語句 93

6.6.2 while語句 95

6.6.3 do…while語句 96

6.6.4嵌套循環語句 97

6.6.5 break語句 98

6.6.6 continue語句 100

6.6.7 goto語句 100

6.6.8 return語句 101

6.7 綜合套用 102

6.8 本章小結 108

6.9 習題 108

第7章 數組的使用( 教學視頻:36分鐘) 109

7.1 數組的概念 109

7.2 一維數組 109

7.2.1 一維數組的定義 109

7.2.2 一維數組的初始化 110

7.2.3 一維數組元素的訪問 112

7.2.4 字元數組 112

7.3 多維數組 113

7.3.1 多維數組的定義 114

7.3.2 多維數組的初始化 114

7.3.3 多維數組元素的訪問 116

7.4 數組的套用 117

7.5 本章小結 125

7.6 習題 125

第8章 靈活的指針( 教學視頻:79分鐘) 126

8.1 什麼是指針 126

8.2 指針的定義和初始化 128

8.2.1 指針變數的定義 128

8.2.2 獲得地址並對指針變數進行初始化 129

8.2.3 指針變數的使用 130

8.2.4 指針與引用 132

8.3 指針的操作 133

8.4 指向指針的指針 135

8.5 使用指針訪問數組元素 136

8.5.1 指向數組元素的指針 136

8.5.2 一維數組與指針 137

8.5.3 多維數組與指針 140

8.6 指針和const限定符 144

8.6.1 指向const對象的指針 144

8.6.2const指針145

8.7 指針和字元串 145

8.8 本章小結 146

8.9 習題 146

第9章 函式的使用( 教學視頻:81分鐘) 147

9.1 函式的概念 147

9.2 函式的聲明 148

9.3 函式的定義 150

9.3.1 不同函式類型的定義形式 150

9.3.2 函式的返回值 152

9.3.3 函式的形參表153

9.4 函式的參數傳遞 154

9.4.1形式參數與實際參數 154

9.4.2 非引用形參 155

9.4.3 引用形參 155

9.5 函式的調用 158

9.6 函式的嵌套調用 158

9.7 內聯函式 159

9.8 變數的存儲方式 161

9.9 指針和函式 161

9.9.1 指針參數 161

9.9.2 指針作為返回值 162

9.10 函式的重載 164

9.10.1 重載與作用域 165

9.10.2 默認參數 166

9.10.3 參數類型上不同的重載函式166

9.10.4 參數個數上不同的重載函式 167

9.11 本章小結 168

9.12 習題 168

第10章 變數的生存範圍( 教學視頻:26分鐘) 169

10.1 局部作用域 169

10.2 全局作用域 170

10.3 變數的存儲類型 171

10.3.1 自動存儲類型 171

10.3.2 靜態存儲變數 171

10.3.3 暫存器存儲類型 172

10.4 定義和使用命名空間 173

10.5 本章小結 176

10.6 習題 176

第11章 讓數據到文本中去——檔案的操作( 教學視頻:42分鐘) 177

11.1 檔案的概述 177

11.2 I/O流的描述 177

11.3 檔案的打開模式 178

11.4 打開一個檔案 178

11.5 向檔案中寫入數據 181

11.5.1 文本檔案的寫入方法 181

11.5.2 二進制檔案的寫入方法 182

11.5.3 將結構體數據寫入到檔案 182

11.6 從檔案中讀出數據 183

11.6.1 get()方法 183

11.6.2GetLine()方法 183

11.6.3 rdbuf()方法 184

11.6.4 read()方法 184

11.7 檔案指針的定位 185

11.7.1 確定檔案指針在檔案流中的位置(tellp()和tellg()) 185

11.7.2 移動檔案流中指針(seekg()和seekp()) 187

11.8 關閉檔案 188

11.9 檔案處理的實例 189

11.10 本章小結 192

11.11 習題 192

第12章 預編譯( 教學視頻:28分鐘) 193

12.1 宏定義 193

12.1.1 不帶參數的宏定義 193

12.1.2 帶參數的宏定義 194

12.2 #include檔案包含 196

12.3條件編譯196

12.3.1 什麼是條件編譯 196

12.3.2 幾種常用的條件編譯格式 197

12.4 預定義宏 199

12.5 本章小結 200

12.6 習題 200

第13章 字元串的處理( 教學視頻:44分鐘) 201

13.1 string對象的定義和初始化 201

13.2 字元串類的成員函式202

13.3 字元串處理類的操作符 204

13.4 字元串類中的指針 206

13.5 string類串和C風格串之間的轉換 207

13.6 字元串套用實例 208

13.7 本章小結 212

13.8 習題 212

第3篇 C++高級特性

第14章 類和對象( 教學視頻:78分鐘) 213

14.1 類 213

14.1.1 類的定義 213

14.1.2 類的struct定義方式 216

14.2 定義一個類的實例——對象 217

14.3 類的構造函式 217

14.3.1 構造函式的定義 217

14.3.2默認構造函式219

14.3.3 構造函式的默認實參 220

14.3.4 重載構造函式 221

14.3.5 類類型的隱式轉換 224

14.4 類的成員函式 225

14.4.1 成員函式的定義 225

14.4.2 成員函式的調用 226

14.4.3常成員函式228

14.4.4 重載成員函式 229

14.5 類中的靜態成員 230

14.5.1 靜態數據成員 230

14.5.2 靜態成員函式 231

14.6 友元 233

14.7 操作符的重載 234

14.8 本章小結 235

14.9 習題 235

第15章 財富的積累——繼承( 教學視頻:46分鐘) 236

15.1 繼承的概念 236

15.2 定義基類與派生類 236

15.3 繼承方式 237

15.3.1 公有繼承 237

15.3.2 保護繼承 238

15.3.3私有繼承239

15.4 派生類的構造與析構 240

15.5 組合與繼承 241

15.6 賦值兼容原則 243

15.7 多重繼承 244

15.7.1 多重繼承的結構 244

15.7.2 多重繼承中的構造與析構 246

15.8 本章小結 247

15.9 習題 247

第16章 讓程式變得更短——模板( 教學視頻:59分鐘) 248

16.1 模板的概念與意義 248

16.2 函式模板 249

16.2.1 函式模板的定義 249

16.2.2 函式模板的用法 250

16.2.3 函式模板的重載 251

16.3 類模板 252

16.3.1 類模板的定義 252

16.3.2 類模板的實例化 254

16.3.3 模板類和類模板 255

16.3.4 類模板的套用 255

16.4 本章小結 261

16.5 習題 261

第17章 代碼的工廠——虛擬和多態( 教學視頻:43分鐘) 262

17.1 多態的定義與實現 262

17.1.1 多態的定義 262

17.1.2 多態的實現 264

17.2 虛擬函式的定義與實現 268

17.2.1 虛函式 268

17.2.2 虛擬析構函式 270

17.2.3 避免虛函式的誤用 271

17.3 抽象類與純虛函式273

17.3.1 純虛函式 273

17.3.2 抽象類和具體類 274

17.4 本章小結 276

17.5 習題 276

第18章 讓系統變得更健康——異常處理( 教學視頻:62分鐘) 277

18.1 異常處理的含義 277

18.2 拋出異常 278

18.3 捕獲異常 279

18.4 使用異常 281

18.4.1 何時避免異常 281

18.4.2 異常的典型套用 282

18.4.3 非錯誤處理 283

18.5 標準異常處理類 284

18.6 本章小結 285

18.7 習題 286

第4篇 綜合案例

第19章 學生成績管理系統( 教學視頻:58分鐘) 287

19.1 概要設計 287

19.2 詳細設計 287

19.3 代碼開發 289

19.3.1 學生類的定義 289

19.3.2 操作類的定義 290

19.3.3 設定學生姓名setname(char na[]) 290

19.3.4 設定學生學號setNo(int n) 291

19.3.5 設定英語成績setEng(float e) 291

19.3.6 設定語文成績setChi(float c) 291

19.3.7 設定數學成績setMat(float m) 291

19.3.8 設定總分settotal(float t) 291

19.3.9 獲取姓名getname() 291

19.3.10 獲取學號getNo() 291

19.3.11 獲取英語成績getEng() 292

19.3.12 獲取語文成績getChi() 292

19.3.13 獲取數學成績getMat() 292

19.3.14 獲取總分gettotal() 292

19.3.15 輸入學生信息getdata() 292

19.3.16 總分排序sort() 293

19.3.17 顯示所有學生記錄DISP() 293

19.3.18 初始化界面initdisp() 294

19.3.19 添加數據記錄adddata() 294

19.3.20 按照學號查找記錄namefind(int) 295

19.3.21 輸入學號inputonename() 296

19.3.22 刪除學生記錄dele(int num) 296

19.3.23 計算平均分函式 297

19.3.24 返回記錄數目getns() 297

19.3.25 退出系統quit() 297

19.3.26 程式主函式main 298

19.4 本章小結 299

第20章 銀行自動操作終端系統( 教學視頻:27分鐘) 300

20.1 概要設計 300

20.2 詳細設計 300

20.3 代碼開發 303

20.3.1 普通用戶賬戶信息類的定義 303

20.3.2 普通用戶賬戶信息類的實現 304

20.3.3 普通用戶個人信息類的定義 304

20.3.4 普通用戶個人信息類的實現 305

20.3.5 普通用戶個人操作信息類的定義 306

20.3.6 普通用戶個人操作信息類的實現 306

20.3.7 封裝類的定義 307

20.3.8 操作類的定義 309

20.3.9 聲明關於輸出的函式 309

20.3.10 系統實現主函式 310

20.4 程式效果 316

20.5 本章小結 317

相關詞條

相關搜尋

熱門詞條

聯絡我們