C++入門很簡單

C++入門很簡單

該書是一本與眾不同的面向初學者的C++讀物,不需要讀者有太多的基礎。以簡單實用為原則,講解通俗易懂,循序漸進,避免了雲山霧罩、晦澀難懂。該書語言輕鬆活潑,用類比、對比、比喻等寫作手法,並配合圖解教學,對難點之處又給出了必要提示;書中的每個知識點都對應相應的編程實例,便於讀者一邊學習一邊動手實踐,既可以提高讀者的動手能力,也可以激發學習興趣。該書配1張光碟,內容為本書配套教學視頻及原始碼。另外,光碟中還贈送了Visual C++項目開發的原始碼及教學視頻。

基本介紹

  • 書名:C++入門很簡單
  • 作者:池劍鋒 等
  • ISBN:9787302328247
  • 類別:計算機
  • 定價:59.8
  • 出版時間:2013-12-31
  • 裝幀:平裝
前言,特色,內容簡介,作者,目錄,

前言

隨著科技的不斷發展,IT行業出現了數百種程式語言。C++歷經30多年的發展,依舊是一門主流的程式設計語言。在開發大型軟體(如作業系統、數據倉庫、圖形圖像處理、編譯系統等較為底層的系統軟體)上C++具有很突出的優勢與效率,同時,學習C++語言有助於讀者理解計算機運行原理,便於設計出更加健壯、穩定的系統。在就業方面,C++程式設計師普遍具有較高的身價,一名優秀的C++程式設計師無疑具有更好的就業機會與市場競 爭力。
圖書市場上關於C++語言程式設計的圖書不少,但真正適合於C++初學者的書籍卻並不多,這些書籍往往語法細節過多,需要大量的計算機相關知識體系,對於初學者無疑是一個巨大的挑戰。基於這個原因,筆者根據自己多年使用C++編程的經驗和心得體會寫了這本書,希望能夠引領讀者進入C++編程的殿堂。本書針對C++初學者的基礎條件,配合大量的圖表,簡明扼要地總結了C++的語法要點和結構;實例程式簡單易懂,循序漸進,使讀者能更加深刻、全面地理解C++程式設計語言,靈活、高效地利用C++語言進行程式開發。
本書以通俗易懂、生活化的例子來解釋每個知識點的用法,書中的每個例子能起到拋磚引玉的功效。這樣就避免了雲山霧罩、晦澀難懂。而且在語言上儘可能輕鬆活潑,多用類比、對比、比喻等寫作手法,而且配合了大量圖解教學,並對難點給出了必要提示。另外,本書還錄製了配套的多媒體教學視頻,以輔助讀者學習。相信這樣的一本書,可以掃清讀者學習過程中的障礙,讓讀者少走彎路,並激發學習Visual C++的興趣,從而較快地掌握Visual C++編程。

特色

1.提供配套的多媒體教學視頻
本書專門錄製了配套多媒體教學視頻,幫助讀者直觀而高效地學習,從而達到事半功倍的效果。這些視頻和本書實例原始碼收錄於本書配套光碟中。
2.起點較低,不需要程式設計的基礎知識
一些初學者在學C++語言之前並沒有接觸過其他程式設計語言,本書從程式設計基礎知識講起,詳細介紹C++的語法知識和要點,使讀者對其有充分了解,從而具備一定的程式設計基礎。
3.劃分有序,編排合理
本書將C++程式設計畫分為4大部分,分別是面向結構程式設計、面向對象程式設計、泛型編程以及輸入輸出流。這4個部分在編排邏輯上依次漸進,後續知識點需要前面的知識作為鋪墊,知識結構與脈絡清晰,便於讀者理解知識點。
4.詼諧幽默,穿插了大量生活化的例子
本書避免用艱澀難懂、枯燥乏味的術語云山霧罩地分析問題,代之以輕鬆活潑、幽默直白的講解。書中的知識點儘量先給現實生活中的例子,然後與之對比或者類比,讓讀者理解。
5.詳略得當,講解通俗易懂
本書從實用角度出發,儘量避免一些生僻而又不易理解的知識點,將重點放在語言本身的難點(指針、面向對象概念)和程式設計的技巧上,並結合生動形象的例子對較難的知識點進行詳細介紹,力求使讀者儘快掌握相關開發知識。
6.強化實踐,重視套用
本書提供了大量實例,從實踐角度對C++的知識點進行形象的說明,配合相關的技巧說明,加深讀者的印象。本書最後通過一個具體項目開發案例來講述如何利用C++從零基礎開始構建一個完整項目,注重實際解決問題的能力。
7.代碼精講,注釋豐富
本書中的每段代碼都給出了詳細的解釋,並且進行了豐富的代碼注釋,便於讀者理解。而且對於大段代碼還給出了流程圖幫助讀者理解複雜的程式,如第19章的學生管理系統。
8.提供練習題,鞏固提高
本書提供了必要的練習題目,以幫助讀者鞏固和提高所學的知識,也便於相關學校教學使用。
9.提供教學PPT,輔助教學
本書專門製作了教學PPT,以便於老師的教學和學生的學習。教學PPT的下載方式參見本書封底的提示語言。
10.提供完善的技術支持和售後服務

內容簡介

第1篇 C++編程基礎篇(第1~7章)
本篇介紹了C++程式設計語言的基本數據類型,面向結構程式設計的3種基本結構,以及相關運算符的意義,介紹了函式的相關特性和套用方式。
第2篇 面向對象程式設計篇(第8~11章)
本篇對面向對象程式設計進行了詳細的介紹,形象地說明了什麼是類和對象,以及它們之間的關係。接著介紹了C++面向程式設計的3大特性:繼承、多態及虛函式。對繼承和虛函式的概念與方法、多態的性質與原理進行詳細的介紹。
第3篇 C++模板篇(第12~14章)
本篇主要介紹了泛型編程中的函式模板、類模板及C++標準模板庫中提供的模板。如何創建自定義的模板以及使用現有STL中的模板是本篇內容的關鍵。
第4篇 輸入/輸出操作篇(第15~18章)
本篇主要介紹基本的輸入/輸出操作,涉及對檔案流、字元流處理。同時,對包括異常處理、預處理、string類及相關類型轉換操作符的知識點進行說明。
第5篇 項目實戰篇(第19章)
整合前面所介紹的知識,通過一個具體的項目案例來說明如何利用C++進行項目開發。
配書光碟內容介紹
為了方便讀者閱讀本書,本書附帶1張DVD光碟。內容如下:
* 本書配套多媒體教學視頻;
* 本書所有實例原始碼;
* Visual C++項目開發原始碼及教學視頻。
適合閱讀本書的讀者
* 零基礎學C++的人員;
* C++程式設計師;
* C++開發愛好者;
* 專業培訓機構的學員;
* 大中專院校的學生。
閱讀本書的建議
* 沒有C++基礎知識的讀者,建議從第1章順次閱讀並演練每一個實例。
* 有一定C++基礎知識的讀者,可以根據實際情況有重點地選擇閱讀的章節。
* 對於書中提供的每個編程實例,先自己思考一下實現的思路,然後再閱讀,學習效果更好。
* 對於不易理解的概念和知識點,可以通過調試光碟中提供的實例代碼來深入理解程式的運行機制和原理。

作者

該書由池劍鋒主筆編寫。其他參與編寫的人員有陳剛、陳世瓊、黃點點、黃海力、黃紹斌、蔣春蕾、李國良、李俊娜、李曉娜、劉永純、王書勇、王挺、王文強、張偉、張小華、胡丹萍、王以榮、徐陽。

目錄

第1篇 C++編程基礎篇
第1章 C++編程前奏(教學視頻:19分鐘) 2
1.1 計算機的五臟六腑 2
1.1.1 控制器 3
1.1.2 運算器 3
1.1.3 存儲器 4
1.1.4 輸入設備 4
1.1.5 輸出設備 4
1.2 作業系統的進化史 4
1.3 程式語言的家譜 5
1.3.1 機器語言 5
1.3.2 彙編語言 6
1.3.3 高級語言 8
1.4 面向過程程式設計 8
1.5 面向對象程式設計 9
1.5.1 面向對象的方法由來——萬物皆是對象 10
1.5.2 面向對象的基本概念 10
1.6 搭建C++開發環境 11
1.6.1 下載和安裝大管家——Visual C++ 6.0 11
1.6.2 大管家的責任 11
1.6.3 邁出第一步——第一個C++程式 15
1.7 C++編程簡述 17
1.7.1 C++語言特點 17
1.7.2 C++的良好編程風格 18
1.8 本章小結 19
1.9 本章習題 20
第2章 開始C++開發之旅(教學視頻:27分鐘) 21
2.1 機器的螺絲--基本數據類型和常用庫函式 21
2.1.1 字元集和標識符 21
2.1.2 整型數據 23
2.1.3 浮點型數據 24
2.1.4 字元型數據 25
2.1.5 字元串和枚舉常量 26
2.1.6 符號常量和變數 27
2.1.7 輸入/輸出函式 32
2.1.8 其他常用的函式 35
2.2 運算符和表達式 37
2.2.1 算術運算符 37
2.2.2 邏輯運算符 38
2.2.3 關係運算符 39
2.2.4 位操作運算符 39
2.2.5 賦值運算符和相等性運算符(==) 40
2.2.6 位元組數運算符(sizeof) 41
2.2.7 運算符的優先權和結合性 41
2.2.8 算術表達式 43
2.2.9 邏輯表達式 45
2.2.10 關係表達式 46
2.2.11 條件表達式 47
2.2.12 賦值表達式 48
2.2.13 逗號表達式 49
2.3 類型轉換 50
2.3.1 強制類型轉換 50
2.3.2 自動類型轉換 52
2.4 控制結構和語句 53
2.4.1 for重複結構及示例 53
2.4.2 while重複結構及示例 55
2.4.3 do/while重複結構及示例 56
2.4.4 if-else結構及示例 57
2.4.5 switch多選結構 59
2.4.6 break和continue語句 61
2.4.7 goto語句 62
2.5 預處理 63
2.5.1 檔案包含命令(#include) 63
2.5.2 宏定義命令(#define) 63
2.6 本章小結 64
2.7 本章習題 64
第3章 數組和字元串(教學視頻:30分鐘) 67
3.1 一維數組 67
3.1.1 一維數組定義 67
3.1.2 一維數組的初始化 68
3.1.3 一維數組元素的引用 68
3.1.4 一維數組示例 69
3.2 多維數組 71
3.2.1 多維數組定義 71
3.2.2 初始化多維數組 72
3.2.3 多維數組套用舉例 73
3.3 字元數組和字元串 74
3.3.1 字元數組的定義和賦值 74
3.3.2 字元串的輸入/輸出 76
3.3.3 字元串套用示例 77
3.4 本章小結 78
3.5 本章習題 79
第4章 指針與引用(教學視頻:46分鐘) 81
4.1 市場經濟--指針的定義及格式 81
4.1.1 什麼是指針 81
4.1.2 聲明一個指針 82
4.1.3 初始化指針變數 83
4.1.4 指向指針的指針 84
4.2 指針的運算 85
4.2.1 指針的賦值運算和增減值運算 85
4.2.2 指針比較運算和相減運算 87
4.2.3 指針運算和地址運算 88
4.3 指針和數組 89
4.3.1 使用數組名的指針表示法 89
4.3.2 指針數組 90
4.3.3 指向數組的指針 91
4.4 動態記憶體分配 94
4.4.1 使用new動態分配記憶體 94
4.4.2 delete釋放動態申請的記憶體 94
4.4.3 malloc和free使用 96
4.4.4 記憶體動態申請注意事項 97
4.4.5 轉換指針 99
4.5 常量指針和指向常量的指針 100
4.5.1 常量指針 100
4.5.2 指向常量的指針 101
4.6 人人都可以有綽號--引用 102
4.6.1 引用和引用的創建方法 102
4.6.2 引用和指針關係 103
4.7 本章小結 106
4.8 本章習題 106
第5章 結構體和共用體(教學視頻:51分鐘) 109
5.1 一串精美的珍珠——結構體 109
5.1.1 結構體的聲明 109
5.1.2 結構體變數的定義和使用 110
5.1.3 結構體變數初始化 111
5.1.4 結構體數組定義和引用 113
5.1.5 結構體指針 114
5.1.6 結構體套用舉例 117
5.2 大家的公共教室--共用體 121
5.2.1 共用體的聲明 121
5.2.2 共用體變數定義和使用 121
5.2.3 共用體和結構體差異 123
5.2.4 共用體數組和指針 124
5.2.5 共用體套用舉例 124
5.3 本章小結 126
5.4 本章習題 126
第6章 使用函式編程(教學視頻:45分鐘) 128
6.1 神秘的黑盒子--函式 128
6.1.1 程式模組化的優勢 128
6.1.2 編寫一個函式 129
6.2 理解函式 130
6.2.1 函式的定義 130
6.2.2 函式的聲明 132
6.3 函式參數和返回值 133
6.3.1 什麼是實參和形參 134
6.3.2 參數類型轉換 135
6.3.3 函式參數默認值設定 136
6.3.4 函式參數值傳遞 137
6.3.5 函式參數指針傳遞 138
6.3.6 函式參數引用傳遞 141
6.3.7 函式返回值實現 142
6.4 遞歸函式和內聯函式 143
6.4.1 遞歸函式示例 144
6.4.2 內聯(inline)函式示例 145
6.5 函式的重載 146
6.5.1 重載函式特徵 146
6.5.2 實現重載函式 147
6.5.3 重載函式的二義性問題 148
6.6 函式存儲類型 149
6.6.1 外部函式 149
6.6.2 內部函式 150
6.7 本章小結 151
6.8 本章習題 151
第7章 函式高級套用(教學視頻:37分鐘) 153
7.1 小心地雷--記憶體操作問題 153
7.1.1 記憶體泄漏 153
7.1.2 野指針 155
7.2 函式與結構體、共用體 156
7.2.1 結構體和共用體作為函式參數 156
7.2.2 結構體和共用體作為返回值 157
7.3 函式與數組 159
7.3.1 一維數組作為函式參數 159
7.3.2 二維數組作為函式參數 160
7.4 函式指針 162
7.4.1 函式指針的定義 162
7.4.2 把函式作為參數傳遞 164
7.4.3 函式指針數組 165
7.5 main函式的參數--程式的入口 167
7.6 本章小結 169
7.7 本章習題 170
第2篇 面向對象程式設計篇
第8章 類和對象之基礎(教學視頻:43分鐘) 174
8.1 類和對象的基本概念--抽象與具體辯證 174
8.1.1 類的概念 174
8.1.2 對象概念 175
8.1.3 類和對象的關係 175
8.2 類的定義格式和對象定義方法 176
8.2.1 類的定義格式 176
8.2.2 對象的定義方法 177
8.2.3 對象成員的表示 178
8.2.4 class和struct 180
8.3 一個對象的生與死 180
8.3.1 默認構造函式 180
8.3.2 自定義構造函式 181
8.3.3 析構函式 182
8.4 抄作業的秘密--拷貝構造函式 184
8.4.1 理解拷貝構造函式 184
8.4.2 默認的拷貝構造函式 184
8.4.3 拷貝構造函式方法的選擇 185
8.5 公共飲水機--靜態成員 189
8.5.1 靜態數據成員 189
8.5.2 靜態成員函式 191
8.6 只可遠觀而不可褻玩--常成員 192
8.6.1 常數據成員 192
8.6.2 常成員函式 194
8.7 類的類型轉換 195
8.7.1 類型隱式轉換 196
8.7.2 類的類型和一般數據類型之間的轉換 196
8.7.3 隱式轉換存在的二義性問題 199
8.8 本章小結 200
8.9 本章習題 200
第9章 類和對象之進階(教學視頻:44分鐘) 203
9.1 類的作用域和對象的生存期 203
9.1.1 類的作用域 203
9.1.2 對象的生存期 205
9.2 嚴格的海關--友元函式和友元類 207
9.2.1 友元函式 207
9.2.2 友元類 209
9.3 對象指針和數組 210
9.3.1 對象指針 210
9.3.2 this指針 213
9.3.3 對象引用 214
9.3.4 對象數組 216
9.3.5 對象指針數組 217
9.4 按需選擇--運算符重載 219
9.4.1 運算符重載的條件 219
9.4.2 重載賦值運算符 220
9.4.3 重載算術運算符 221
9.4.4 重載下標運算符 222
9.4.5 重載類型轉換 223
9.4.6 重載new和delete運算符 224
9.4.7 智慧型指針 225
9.5 本章小結 226
9.6 本章習題 227
第10章 繼承(教學視頻:45分鐘) 229
10.1 父子關係--何謂繼承 229
10.2 繼承和聚合 230
10.3 基類和派生類 230
10.3.1 從基類派生出新類 230
10.3.2 繼承下的訪問控制 232
10.3.3 派生類的構造函式和析構函式 237
10.3.4 基類和派生類的類型轉換 239
10.4 多重繼承 241
10.4.1 多個基類 241
10.4.2 多重繼承成員的模糊性 243
10.4.3 重複繼承 245
10.4.4 虛基類 246
10.5 本章小結 248
10.6 本章習題 249
第11章 虛函式和多態性(教學視頻:21分鐘) 251
11.1 標準接口--什麼是多態性 251
11.2 動態綁定和靜態綁定 252
11.2.1 靜態綁定 252
11.2.2 虛函式 255
11.2.3 動態綁定 258
11.3 空瓶子--抽象基類和純虛函式 260
11.3.1 純虛函式的聲明和定義 261
11.3.2 抽象類 262
11.3.3 虛析構函式 263
11.4 類成員指針 264
11.4.1 數據成員指針 264
11.4.2 成員函式指針 266
11.5 本章小結 268
11.6 本章習題 269
第3篇 C++模板篇
第12章 函式模板(教學視頻:16分鐘) 272
12.1 認識函式模板 272
12.1.1 為什麼使用模板 272
12.1.2 定義函式模板 273
12.1.3 使用函式模板 274
12.2 函式模板的參數 276
12.3 重載函式模板 278
12.3.1 函式模板之間的重載 279
12.3.2 顯示特化的重載 280
12.3.3 普通函式重載 281
12.4 本章小結 282
12.5 本章習題 283
第13章 類模板(教學視頻:21分鐘) 285
13.1 認識類模板 285
13.2 定義類模板 286
13.2.1 模板參數 286
13.2.2 簡單的類模板 287
13.2.3 創建類模板實例 289
13.2.4 類模板的靜態成員 292
13.2.5 非類型的類模板參數 294
13.2.6 非類型的參數實例 296
13.2.7 默認參數模板 297
13.3 模板顯式實例化 299
13.4 類模板的友元 301
13.5 模板的嵌套 303
13.6 本章小結 307
13.7 本章習題 307
第14章 標準模板庫(STL)(教學視頻:28分鐘) 309
14.1 STL概述 309
14.1.1 STL組件 309
14.1.2 容器(container) 310
14.1.3 疊代器(iterator) 313
14.1.4 算法(algorithm) 313
14.1.5 STL頭檔案 314
14.2 使用vector容器 315
14.2.1 創建Vector容器 315
14.2.2 訪問vector容器中的元素 316
14.2.3 vector基本操作 318
14.2.4 vector容器和數組 320
14.2.5 輸入/輸出流疊代器 321
14.3 創建自己的疊代器 323
14.3.1 給算法傳送疊代器 323
14.3.2 STL疊代器類型要求 325
14.3.3 STL疊代器成員函式的條件 327
14.3.4 插入疊代器 328
14.4 list容器 329
14.4.1 創建list容器 330
14.4.2 訪問list容器中的元素 330
14.4.3 list容器上的操作 331
14.5 本章小結 333
14.6 本章習題 333
第4篇 輸入/輸出操作篇
第15章 輸入/輸出流和檔案流(教學視頻:32分鐘) 336
15.1 C++中的輸入/輸出流 336
15.1.1 什麼是流 336
15.1.2 輸出流 337
15.1.3 輸入流 339
15.1.4 流格式狀態 340
15.1.5 流錯誤狀態 342
15.2 檔案流 344
15.2.1 寫入檔案 344
15.2.2 讀取檔案 346
15.2.3 檔案隨機訪問 347
15.2.4 隨機訪問檔案的讀寫操作 348
15.3 字元串流 351
15.3.1 strstream相關類 351
15.3.2 sstream相關類 352
15.4 對象和流 353
15.4.1 <<操作符重載 354
15.4.2 >>操作符重載 355
15.5 本章小結 356
15.6 本章習題 357
第16章 異常處理(教學視頻:25分鐘) 359
16.1 認識異常 359
16.1.1 了解異常處理 359
16.1.2 拋出異常 360
16.1.3 導致拋出異常的代碼 362
16.2 用類對象作為異常 362
16.2.1 用catch處理程式和異常 362
16.2.2 用基類處理程式捕獲派生類的異常 365
16.2.3 重新拋出異常 367
16.2.4 捕獲所有異常 369
16.3 拋出異常的函式 371
16.3.1 函式try塊 371
16.3.2 在構造函式中拋出異常 372
16.3.3 異常和析構函式 372
16.3.4 一個簡單的異常處理例子 373
16.4 其他典型異常 375
16.4.1 堆疊解退 375
16.4.2 處理new失敗 376
16.4.3 auto_ptr與記憶體泄漏 377
16.5 本章小結 378
16.6 本章習題 378
第17章 程式的預處理(教學視頻:15分鐘) 380
17.1 預處理簡介 380
17.2 C++預處理程式 381
17.3 include(包含)檔案 382
17.4 預處理指令#define 383
17.4.1 預定義符號常量 383
17.4.2 帶參數的宏定義和不帶參數的宏定義 384
17.4.3 宏定義取消 386
17.5 條件編譯 387
17.5.1 #if-#else-#endif指令 387
17.5.2 #if - #elif - #endif指令 388
17.5.3 #ifdef - #endif指令 388
17.5.4 #ifndef - #endif指令 389
17.6 #pragam 指令 389
17.7 本章小結 392
17.8 本章習題 392
第18章 string類和其他信息(教學視頻:21分鐘) 393
18.1 string類介紹和聲明 393
18.2 string的輸入/輸出 394
18.3 string的基本操作 395
18.3.1 賦值和拼接 395
18.3.2 比較字元串 397
18.3.3 子串 398
18.3.4 交換字元串 399
18.3.5 字元插入 399
18.3.6 替換字元 401
18.3.7 查找 402
18.3.8 轉換為C風格的char*字元串 405
18.4 運行時類型信息(RTTI) 406
18.5 類型轉換操作符 407
18.5.1 const_cast操作符 407
18.5.2 static_cast操作符 408
18.5.3 reinterpret_cast操作符 408
18.6 本章小結 408
18.7 本章習題 409
第5篇 項目實戰篇
第19章 學生管理系統項目案例(教學視頻:48分鐘) 412
19.1 學生管理系統項目需求與設計 412
19.1.1 資料庫設計 412
19.1.2 功能設計 413
19.1.2 項目需求及功能分析 413
19.1.3 功能模組劃分及設計 414
19.2 學生管理系統編程實現 416
19.2.1 student學生類 416
19.2.2 filemanage數據操作類 419
19.2.3 Operstu學生信息操作類 423
19.3 學生管理系統總結 432

相關詞條

熱門詞條

聯絡我們