注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計C/C++及其相關(guān)零基礎(chǔ)學(xué)C++(第2版)

零基礎(chǔ)學(xué)C++(第2版)

零基礎(chǔ)學(xué)C++(第2版)

定 價:¥69.00

作 者: 楊彥強 ,劉袁紅 ,王浩 等編著
出版社: 機(jī)械工業(yè)出版社
叢編項: 零基礎(chǔ)學(xué)編程
標(biāo) 簽: VC++

ISBN: 9787111373964 出版時間: 2012-04-01 包裝: 平裝
開本: ` 頁數(shù): 566 字?jǐn)?shù):  

內(nèi)容簡介

  閱讀和學(xué)習(xí)本書并不要求讀者有C++語言的基礎(chǔ),通過幾百個簡潔高效的代碼,《零基礎(chǔ)學(xué)C++(第2版)》將帶領(lǐng)讀者循序漸進(jìn)地領(lǐng)略C++語言的魅力所在。本書采用從無到有、由淺入深、逐級遞進(jìn)的編寫方式,尤其適合無C++語言基礎(chǔ)或C語言基礎(chǔ)薄弱的程序員閱讀。本書共分為六篇21章,介紹了Visual C++6開發(fā)環(huán)境的搭建、C++語言的基本數(shù)據(jù)類型、C++語言的表達(dá)式、函數(shù)、函數(shù)重載、類的繼承、多態(tài)、內(nèi)存管理方式、文件存儲、錯誤與異常、RTTI、String類、編碼風(fēng)格與程序編譯等內(nèi)容,最后還對世界500強中IT公司常見面試題進(jìn)行了講解。本書非常適合C++語言的初、中級學(xué)者閱讀,并可作為開發(fā)人員的參考手冊。

作者簡介

  本書主要由楊彥強、劉袁紅、王浩編著,其他參與編著和資料整理的人員有馮華君、劉博、劉燕、葉青、張軍、張立娟、張藝、彭濤、徐磊、戎偉、朱毅、李佳、李玉涵、楊利潤、楊春嬌、武鵬、潘中強、王丹、王寧、王西莉、石淑珍、程彩紅、邵毅、鄭丹丹、鄭海平、顧旭光。作 者2012年1月

圖書目錄

前言
第一篇  C++基礎(chǔ)
第1章  C++概述 1
1.1  了解計算機(jī) 1
1.1.1  計算機(jī)硬件 2
1.1.2  計算機(jī)軟件 3
1.2  程序設(shè)計語言 3
1.2.1  機(jī)器語言 3
1.2.2  匯編語言 4
1.2.3  高級語言 5
1.2.4  數(shù)據(jù)結(jié)構(gòu)和算法 6
1.2.5  面向過程的程序設(shè)計(POP) 6
1.2.6  面向?qū)ο蟮某绦蛟O(shè)計(OOP) 6
1.3  C++簡介 7
1.3.1  C++語言發(fā)展歷程 7
1.3.2  C++語言特點 8
1.3.3  C++程序開發(fā)基本過程 8
1.4  C++開發(fā)環(huán)境的搭建 9
1.4.1  Visual C++ 6開發(fā)環(huán)境簡介 9
1.4.2  開發(fā)步驟 10
1.5  第一個C++程序 11
1.6  小結(jié) 12
1.7  上機(jī)實踐習(xí)題 12
第2章  開始C++之旅 13
2.1  C++程序的結(jié)構(gòu) 13
2.1.1  注釋 14
2.1.2  編譯預(yù)處理與新舊標(biāo)準(zhǔn) 14
2.1.3  主函數(shù) 14
2.1.4  名稱空間 16
2.1.5  C++語素 17
2.2  變量與基本類型 18
2.2.1  變量 18
2.2.2  整型 20
2.2.3  浮點型 21
2.2.4  基本字符型 21
2.2.5  寬字符型 22
2.2.6  布爾型 22
2.3  常量 22
2.3.1  整型常量和浮點型常量 23
2.3.2  字符型常量 23
2.3.3  字符串常量 25
2.3.4  符號常量 26
2.3.5  枚舉常量 27
2.4  運算符與表達(dá)式 28
2.4.1  算術(shù)運算 28
2.4.2  邏輯運算 30
2.4.3  短路表達(dá)式 30
2.4.4  關(guān)系運算 31
2.4.5  大有文章: 變量是否為“0” 31
2.4.6  條件運算 32
2.4.7  位運算 32
2.4.8  賦值運算 35
2.4.9  ++和-- 37
2.4.10  逗號表達(dá)式 38
2.4.11  sizeof運算符與sizeof表達(dá)式 38
2.4.12  運算符的優(yōu)先級和結(jié)合性 38
2.5  類型轉(zhuǎn)換 40
2.5.1  賦值轉(zhuǎn)換 40
2.5.2  表達(dá)式中的轉(zhuǎn)換 43
2.5.3  強制類型轉(zhuǎn)換 44
2.5.4  函數(shù)調(diào)用和傳遞參數(shù)時的類型轉(zhuǎn)換 45
2.6  流程控制語句 45
2.6.1  if...else...選擇結(jié)構(gòu) 45
2.6.2  switch結(jié)構(gòu) 47
2.6.3  if...else...結(jié)構(gòu)和switch結(jié)構(gòu)的比較 51
2.6.4  for循環(huán)結(jié)構(gòu) 51
2.6.5  for循環(huán)結(jié)構(gòu)嵌套 53
2.6.6  while循環(huán)結(jié)構(gòu) 54
2.6.7  do...while循環(huán)結(jié)構(gòu) 54
2.6.8  循環(huán)語句的效率 55
2.6.9  流程轉(zhuǎn)向控制語句之break 55
2.6.10  流程轉(zhuǎn)向控制語句之continue 56
2.6.11  自由轉(zhuǎn)向語句goto 56
2.6.12  程序中止函數(shù)exit() 57
2.7  小結(jié) 58
2.8  上機(jī)實踐習(xí)題 58
第二篇  C++過程開發(fā)
第3章  數(shù)組和C風(fēng)格字符串 61
3.1  什么是數(shù)組 61
3.2  一維數(shù)組 62
3.2.1  一維數(shù)組的聲明 62
3.2.2  初始化一維數(shù)組 63
3.2.3  一維數(shù)組應(yīng)用舉例 64
3.2.4  數(shù)組操作注意事項 65
3.3  C 風(fēng)格字符串 65
3.3.1  C 風(fēng)格字符串的聲明 65
3.3.2  字符數(shù)組的cin和cout 66
3.3.3  get()函數(shù)和getline()函數(shù) 67
3.3.4  cin與get()/getline()函數(shù)的搭配問題 68
3.3.5  訪問C風(fēng)格字符串中的某個元素 69
3.3.6  C風(fēng)格字符串處理函數(shù) 69
3.4  多維數(shù)組 71
3.4.1  聲明一個多維數(shù)組 71
3.4.2  初始化多維數(shù)組 72
3.4.3  多維數(shù)組應(yīng)用舉例 72
3.4.4  多維數(shù)組在內(nèi)存中是如何排列元素的 73
3.5  小結(jié) 74
3.6  上機(jī)實踐習(xí)題 74
第4章  指針和引用 76
4.1  指針的定義與使用 76
4.1.1  聲明一個指針變量 76
4.1.2  初始化指針變量 79
4.1.3  指向指針的指針 80
4.1.4  指針賦值 80
4.2  指針的運算 81
4.2.1  指針與整數(shù)的加減 81
4.2.2  同類型指針間的比較 82
4.2.3  同類型指針相減 82
4.3  動態(tài)內(nèi)存分配 83
4.3.1  使用new動態(tài)分配內(nèi)存 83
4.3.2  使用delete動態(tài)釋放及動態(tài)申請的內(nèi)存 83
4.3.3  使用new申請動態(tài)數(shù)組 83
4.3.4  不要使用或釋放已經(jīng)釋放的內(nèi)存塊 85
4.3.5  使用malloc和free動態(tài)申請內(nèi)存 85
4.3.6  動態(tài)內(nèi)存申請并不一定能成功 87
4.4  指針和const 87
4.4.1  禁止改寫指針(常量指針或常指針) 87
4.4.2  禁止改寫間接引用 88
4.4.3  既禁止改寫指針,又禁止改寫間接引用 88
4.5  指針與數(shù)組 88
4.5.1  數(shù)組名指針 88
4.5.2  數(shù)組元素的指針形式 90
4.5.3  指向數(shù)組的指針 90
4.5.4  指針數(shù)組 92
4.6  引用 95
4.6.1  引用的聲明 95
4.6.2  引用的特點 95
4.6.3  引用的使用限制 96
4.6.4  其他要說明的問題 97
4.7  小結(jié) 97
4.8  上機(jī)實踐習(xí)題 98
第5章  結(jié)構(gòu)、共用體和鏈表 99
5.1  結(jié)構(gòu) 99
5.1.1  如何定義一個結(jié)構(gòu) 99
5.1.2  結(jié)構(gòu)變量的聲明和使用 100
5.1.3  結(jié)構(gòu)變量的初始化 102
5.1.4  結(jié)構(gòu)變量間是否可以相互賦值 102
5.1.5  結(jié)構(gòu)體變量的sizeof 103
5.2  共用體 105
5.2.1  共用體的定義 105
5.2.2  共用體和結(jié)構(gòu)的區(qū)別 105
5.2.3  共用體變量的聲明和初始化 107
5.2.4  共用體使用舉例 107
5.2.5  共用體的sizeof 109
5.3  結(jié)構(gòu)數(shù)組和共用體數(shù)組 109
5.3.1  結(jié)構(gòu)數(shù)組的聲明和初始化 109
5.3.2  共用體數(shù)組的聲明和初始化 110
5.4  指向結(jié)構(gòu)的指針 111
5.4.1  聲明一個結(jié)構(gòu)指針 111
5.4.2  結(jié)構(gòu)指針的初始化 112
5.4.3  使用指針訪問結(jié)構(gòu)成員 114
5.5  鏈表 114
5.5.1  鏈表的結(jié)構(gòu) 115
5.5.2  創(chuàng)建鏈表 115
5.5.3  鏈表與數(shù)組的區(qū)別 116
5.5.4  鏈表的遍歷和查找 116
5.5.5  鏈表的插入和刪除 118
5.6  小結(jié) 121
5.7  上機(jī)實踐習(xí)題 122
第6章  用函數(shù)合理組織程序 124
6.1  模塊化帶來的好處 124
6.1.1  函數(shù)的調(diào)用過程 124
6.1.2  抽象和封裝 125
6.1.3  實現(xiàn)一個函數(shù) 126
6.2  函數(shù)定義 126
6.2.1  函數(shù)頭 127
6.2.2  函數(shù)體 127
6.2.3  函數(shù)定義補充說明 128
6.3  函數(shù)聲明 129
6.3.1  為什么要進(jìn)行函數(shù)聲明 129
6.3.2  如何聲明一個函數(shù) 130
6.3.3  分割程序文件 131
6.4  函數(shù)調(diào)用 132
6.4.1  形參和實參 133
6.4.2  參數(shù)類型轉(zhuǎn)換 133
6.4.3  值傳遞 134
6.4.4  指針傳遞 135
6.4.5  引用傳遞 136
6.4.6  對3種傳遞的補充 137
6.4.7  默認(rèn)參數(shù)調(diào)用 138
6.4.8  inline函數(shù) 140
6.5  遞歸 141
6.6  函數(shù)的重載 143
6.6.1  何時使用函數(shù)重載 144
6.6.2  如何實現(xiàn)函數(shù)重載 144
6.6.3  陷阱:隱式轉(zhuǎn)換導(dǎo)致重載函數(shù)出現(xiàn)二義性 144
6.7  C++如何使用內(nèi)存 145
6.7.1  自動存儲(棧存儲) 145
6.7.2  靜態(tài)存儲(編譯器預(yù)分配) 148
6.8  作用域與可見域 152
6.8.1  作用域 153
6.8.2  可見域 153
6.8.3  函數(shù)的作用域和可見域 156
6.9  小結(jié) 156
6.10  上機(jī)實踐習(xí)題 157
第7章  關(guān)于函數(shù)的高級專題 158
7.1  內(nèi)存使用錯誤剖析 158
7.1.1  內(nèi)存泄露 158
7.1.2  野指針 159
7.1.3  試圖修改常量 160
7.1.4  用錯sizeof 161
7.1.5  內(nèi)存越界訪問 161
7.1.6  變量的初始化 162
7.2  重申:函數(shù)參數(shù)傳遞和返回機(jī)制 162
7.2.1  參數(shù)傳遞時的“副本” 162
7.2.2  函數(shù)返回時的“副本” 164
7.3  函數(shù)與指針 165
7.3.1  指向函數(shù)的指針 165
7.3.2  typedef 167
7.3.3  通過函數(shù)指針將函數(shù)作為另一個函數(shù)的參數(shù) 168
7.3.4  函數(shù)指針數(shù)組 169
7.3.5  返回函數(shù)指針的函數(shù) 171
7.3.6  帶參主函數(shù) 171
7.4  函數(shù)與數(shù)組 172
7.4.1  數(shù)組名作為函數(shù)參數(shù) 172
7.4.2  通過指針得到多于1個的回傳值 175
7.5  函數(shù)與結(jié)構(gòu)體、共用體及類對象 176
7.5.1  3種參數(shù)調(diào)用 176
7.5.2  3種返回機(jī)制 177
7.6  函數(shù)編寫的建議 177
7.6.1  合理使用const 177
7.6.2  檢查輸入?yún)?shù)的有效性 178
7.6.3  函數(shù)返回類型的判斷 179
7.7  小結(jié) 179
7.8  上機(jī)實踐習(xí)題 179
第三篇  面向?qū)ο蟮腃++
第8章  面向?qū)ο蠹夹g(shù)基礎(chǔ) 181
8.1  面向?qū)ο蠡靖拍?181
8.1.1  類的概念 182
8.1.2  類是分層的 182
8.1.3  類和對象的關(guān)系 183
8.2  C++類的定義 183
8.2.1  類定義的基本形式 183
8.2.2  類定義示例 184
8.2.3  class和struct 185
8.3  C++類的實現(xiàn) 185
8.3.1  在類定義時定義成員函數(shù) 185
8.3.2  在類定義的外部定義成員函數(shù) 186
8.4  C++類的使用 187
8.4.1  聲明一個對象 188
8.4.2  對象的作用域、可見域和生存期 189
8.5  對象的創(chuàng)建和撤銷 189
8.5.1  構(gòu)造函數(shù)的作用 189
8.5.2  構(gòu)造函數(shù)可以有參數(shù) 190
8.5.3  構(gòu)造函數(shù)支持重載 191
8.5.4  構(gòu)造函數(shù)允許按參數(shù)默認(rèn)方式調(diào)用 192
8.5.5  初始化表達(dá)式 192
8.5.6  析構(gòu)函數(shù) 194
8.5.7  顯式調(diào)用析構(gòu)函數(shù) 195
8.6  復(fù)制構(gòu)造函數(shù) 196
8.6.1  復(fù)制構(gòu)造函數(shù)調(diào)用機(jī)制 196
8.6.2  默認(rèn)復(fù)制構(gòu)造函數(shù)帶來的問題 198
8.6.3  解決方案—顯式定義復(fù)制構(gòu)造函數(shù) 199
8.6.4  關(guān)于構(gòu)造函數(shù)和復(fù)制構(gòu)造函數(shù) 201
8.7  特殊數(shù)據(jù)成員 202
8.7.1  const數(shù)據(jù)成員 202
8.7.2  引用成員 204
8.7.3  類對象成員 206
8.7.4  特別說明 210
8.7.5  static數(shù)據(jù)成員 210
8.8  特殊函數(shù)成員 212
8.8.1  靜態(tài)成員函數(shù) 212
8.8.2  const與成員函數(shù) 214
8.9  對象的組織 215
8.9.1  const對象 215
8.9.2  指向?qū)ο蟮闹羔?217
8.9.3  對象的大小 218
8.9.4  this指針 219
8.9.5  對象數(shù)組 220
8.9.6  對象鏈表 221
8.10  為對象動態(tài)分配內(nèi)存 221
8.10.1  使用new和delete為單個對象分配/釋放動態(tài)內(nèi)存 221
8.10.2  使用new和delete為對象數(shù)組分配/釋放動態(tài)空間 222
8.10.3  malloc和free能否為對象動態(tài)申請內(nèi)存 224
8.11  小結(jié) 224
8.12  上機(jī)實踐習(xí)題 225
第9章  關(guān)于對象的高級專題 227
9.1  類的作用域 227
9.2  類定義的作用域與可見域 229
9.3  對象的生存期、作用域和可見域 232
9.3.1  先定義,后實例化 232
9.3.2  對象內(nèi)存的釋放與堆內(nèi)存 232
9.4  友元 232
9.4.1  友元的非成員函數(shù) 233
9.4.2  友元的成員函數(shù) 234
9.4.3  友元函數(shù)的重載 236
9.4.4  友元類 236
9.4.5  友元是否破壞了封裝性 237
9.5  運算符重載 238
9.5.1  運算符重載規(guī)則 238
9.5.2  以成員函數(shù)形式重載運算符 239
9.5.3  以友元函數(shù)形式重載運算符 242
9.5.4  友元函數(shù)形式和成員函數(shù)形式的比較 245
9.5.5  對運算符重載的補充說明 246
9.6  運算符重載范例 247
9.6.1  賦值運算符 247
9.6.2  函數(shù)調(diào)用運算符 250
9.6.3  下標(biāo)運算符 251
9.7  類型轉(zhuǎn)換 253
9.7.1  由其他類型向定義類的轉(zhuǎn)換 253
9.7.2  由自定義類向其他類型的轉(zhuǎn)換 255
9.7.3  隱式轉(zhuǎn)換帶來的二義性 257
9.8  重載函數(shù)選擇規(guī)則 257
9.8.1  重載解析 258
9.8.2  什么是完全匹配 258
9.9  小結(jié) 259
9.10  上機(jī)實踐習(xí)題 259
第10章  繼承 262
10.1  什么是繼承 262
10.1.1  簡單示例 262
10.1.2  繼承的層次性 264
10.2  派生類 264
10.2.1  public派生與private派生 264
10.2.2  protected成員與protected派生 265
10.3  多基派生 266
10.3.1  多基派生的聲明和定義 266
10.3.2  二義性問題 267
10.3.3  解決方案 268
10.4  虛基類 268
10.4.1  共同基類帶來的二義性 268
10.4.2  解決方案 270
10.4.3  虛基派生二義性與多基派生二義性不同 271
10.5  派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù) 271
10.5.1  派生類的構(gòu)造函數(shù) 271
10.5.2  派生類的析構(gòu)函數(shù) 273
10.5.3  多基派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù) 275
10.5.4  虛基派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù) 275
10.6  分清繼承還是組合 278
10.6.1  繼承不是萬金油 278
10.6.2  組合 278
10.7  基類與派生類對象間的相互轉(zhuǎn)換 280
10.7.1  類型適應(yīng) 280
10.7.2  多基繼承時的情況 282
10.7.3  公共基類 282
10.7.4  虛基類的情況 284
10.8  小結(jié) 284
10.9  上機(jī)實踐習(xí)題 285
第11章  多態(tài) 287
11.1  多態(tài)與虛函數(shù) 287
11.1.1  靜態(tài)聯(lián)編 287
11.1.2  動態(tài)聯(lián)編 287
11.1.3  為什么需要虛函數(shù) 287
11.1.4  虛函數(shù)的聲明和定義 290
11.2  虛函數(shù)的訪問 290
11.2.1  對象名訪問 291
11.2.2  指針訪問 292
11.2.3  引用訪問 292
11.2.4  類內(nèi)訪問 293
11.2.5  在構(gòu)造函數(shù)或析構(gòu)函數(shù)中進(jìn)行訪問 294
11.3  純虛函數(shù)與抽象類 295
11.3.1  純虛函數(shù)的聲明和定義 295
11.3.2  抽象類 296
11.3.3  另一種抽象類:類中只定義了protected型的構(gòu)造函數(shù) 299
11.3.4  延伸:構(gòu)造函數(shù)能否為private型 301
11.3.5  虛析構(gòu)函數(shù) 302
11.4  虛函數(shù)引入的二義性 305
11.4.1  多基派生 305
11.4.2  共同基類和虛繼承 307
11.5  重載、覆蓋與隱藏 309
11.5.1  重載 309
11.5.2  覆蓋 309
11.5.3  隱藏 310
11.6  小結(jié) 311
11.7  上機(jī)實踐習(xí)題 312
第四篇  泛 型 編 程
第12章  模板 315
12.1  為什么要定義模板 315
12.1.1  類型參數(shù)化 315
12.1.2  模板的定義 317
12.2  函數(shù)模板 318
12.2.1  函數(shù)模板的使用 318
12.2.2  隱式實例化 318
12.2.3  顯式實例化 320
12.2.4  特化 321
12.2.5  重載 322
12.2.6  優(yōu)先級與執(zhí)行順序 322
12.3  類模板 324
12.3.1  定義類模板 324
12.3.2  隱式實例化 326
12.3.3  顯式實例化 326
12.3.4  顯式特化 327
12.3.5  部分特化 328
12.3.6  重載和優(yōu)先級 328
12.4  模板的嵌套 329
12.4.1  函數(shù)成員模板 329
12.4.2  對象成員模板 330
12.5  模板參數(shù) 331
12.6  小結(jié) 332
12.7  上機(jī)實踐習(xí)題 333
第13章  標(biāo)準(zhǔn)模板庫 335
13.1  理解STL 335
13.1.1  容器 335
13.1.2  適配器 336
13.1.3  迭代器 336
13.1.4  算法 336
13.2  使用序列式容器 336
13.2.1  序列式容器的創(chuàng)建和元素的訪問 336
13.2.2  所有容器都支持的特征 338
13.2.3  序列式容器中元素的插入和刪除 339
13.2.4  vector容器 344
13.2.5  deque容器 344
13.2.6  list容器 344
13.3  使用關(guān)聯(lián)式容器 344
13.3.1  set容器 345
13.3.2  multiset容器 346
13.3.3  map容器 346
13.3.4  multimap容器 348
13.4  關(guān)聯(lián)式容器支持的成員函數(shù)操作 349
13.4.1  元素的插入 349
13.4.2  元素的刪除 352
13.4.3  元素的查找與訪問 354
13.5  迭代器 355
13.5.1  理解迭代器本質(zhì) 355
13.5.2  迭代器類型 355
13.5.3  為什么要定義這么多迭代器 357
13.5.4  容器中定義的迭代器類型與5種類型的對應(yīng) 358
13.5.5  流迭代器 358
13.5.6  迭代器失效 360
13.6  泛型算法 360
13.6.1  什么是函數(shù)對象 360
13.6.2  算法分類 361
13.7  適配器 365
13.7.1  容器適配器 366
13.7.2  迭代器適配器 367
13.7.3  函數(shù)適配器 369
13.8  小結(jié) 371
13.9  上機(jī)實踐習(xí)題 371
第五篇  輸入輸出處理和編程規(guī)范
第14章  輸入輸出和文件 373
14.1  輸入輸出概述 373
14.1.1  什么是文件 374
14.1.2  流 374
14.1.3  緩沖區(qū) 375
14.1.4  重定向 375
14.1.5  3種輸入輸出機(jī)制 376
14.2  高層I/O 377
14.2.1  標(biāo)準(zhǔn)輸出函數(shù)printf 377
14.2.2  標(biāo)準(zhǔn)輸入函數(shù)scanf 381
14.2.3  掃描集 384
14.2.4  sprintf函數(shù)和sscanf函數(shù) 385
14.2.5  fprintf函數(shù)和fscanf函數(shù) 386
14.2.6  文件訪問機(jī)制 386
14.3  流類庫 390
14.3.1  流類庫更安全、更高效 390
14.3.2  流類庫層次 390
14.4  輸出流 394
14.4.1  操作符<< 394
14.4.2  其他ostream方法 395
14.4.3  格式狀態(tài)字 397
14.4.4  格式控制值的默認(rèn)值 398
14.4.5  flag函數(shù)讀取和設(shè)定格式狀態(tài)字 398
14.4.6  使用setf函數(shù)和unsetf函數(shù)設(shè)定格式關(guān)鍵字 400
14.4.7  設(shè)置域?qū)?402
14.4.8  填充字符 404
14.4.9  浮點數(shù)輸出和顯示精度 404
14.4.10  控制符 406
14.5  輸入流 408
14.5.1  >>操作符 408
14.5.2  輸入流與格式狀態(tài)字 408
14.5.3  輸入流與域?qū)?410
14.5.4  使用get函數(shù)讀取單個字符 411
14.5.5  使用get函數(shù)和getline函數(shù)讀取C風(fēng)格字符串 413
14.5.6  其他istream方法 415
14.6  流狀態(tài) 417
14.6.1  什么是流狀態(tài) 417
14.6.2  讀取流狀態(tài) 417
14.6.3  管理流狀態(tài) 418
14.7  重載>>和<< 420
14.7.1  插入符的重載 420
14.7.2  抽取符的重載 422
14.8  文件操作 423
14.8.1  文件操作基本過程 423
14.8.2  文件的打開 423
14.8.3  取消文件和流的關(guān)聯(lián) 425
14.8.4  文件的讀寫 426
14.8.5  文本文件的讀寫 427
14.8.6  二進(jìn)制文件的讀寫 428
14.8.7  文件定位指針和隨機(jī)讀取 429
14.9  字符串流 431
14.9.1  strstream類族 431
14.9.2  sstream類族 434
14.10  小結(jié) 437
14.11  上機(jī)實踐習(xí)題 437
第15章  名稱空間 439
15.1  什么是名稱空間 439
15.1.1  名稱空間范例 439
15.1.2  定義名稱空間 440
15.2  實體的作用域與可見域 441
15.2.1  實體可見域 442
15.2.2  可見域的擴(kuò)展 442
15.2.3  using聲明機(jī)制 443
15.2.4  using聲明帶來的多重聲明問題(二義性) 445
15.2.5  空間內(nèi)的屏蔽 445
15.2.6  先聲明,后使用 446
15.3  名稱空間的作用域與可見性 447
15.3.1  名稱空間的定義策略 447
15.3.2  推薦用法 450
15.3.3  名稱空間嵌套 451
15.3.4  using編譯指令 452
15.3.5  未命名的名稱空間 453
15.4  對名稱空間的思考 454
15.5  小結(jié) 454
15.6  上機(jī)實踐習(xí)題 454
第16章  異常和錯誤 456
16.1  編碼時的防錯 456
16.1.1  調(diào)用abort函數(shù)或exit函數(shù) 456
16.1.2  返回錯誤標(biāo)志 457
16.2  異常機(jī)制 458
16.2.1  關(guān)鍵字throw 460
16.2.2  異常處理程序 460
16.2.3  自定義異常對象 463
16.2.4  有繼承關(guān)系的類異常 464
16.2.5  terminate函數(shù)和set_terminate函數(shù) 466
16.2.6  unexpected函數(shù)與set_unexpected函數(shù) 467
16.2.7  標(biāo)準(zhǔn)異常 468
16.2.8  對unexpected函數(shù)的補充 470
16.3  異常發(fā)生時的內(nèi)存管理 471
16.3.1  堆棧解退 471
16.3.2  異常處理機(jī)制與函數(shù)的不同 472
16.3.3  構(gòu)造函數(shù)中拋出異常 473
16.3.4  內(nèi)存泄露 474
16.3.5  析構(gòu)函數(shù)中可否拋出異常 475
16.4  auto_ptr類 476
16.4.1  使用auto_ptr類模板 477
16.4.2  關(guān)于auto_ptr的若干問題 477
16.5  小結(jié) 478
16.6  上機(jī)實踐習(xí)題 479
第17章  RTTI和類型轉(zhuǎn)換操作符 481
17.1  RTTI機(jī)制 481
17.1.1  dynamic_cast操作符 482
17.1.2  typeinfo類和typeid操作符 483
17.1.3  補充說明 484
17.2  類型轉(zhuǎn)換操作符 484
17.2.1  const_cast操作符 484
17.2.2  static_cast操作符 485
17.2.3  reinterpret_cast操作符 486
17.3  小結(jié) 486
17.4  上機(jī)實踐習(xí)題 487
第18章  string字符串類 489
18.1  為什么要使用string類 489
18.2  聲明一個字符串 489
18.3  字符串的輸入輸出 491
18.4  string類功能 492
18.4.1  string字符串和C風(fēng)格字符串的轉(zhuǎn)換 492
18.4.2  賦值和清空 492
18.4.3  元素刪除 493
18.4.4  元素追加與相加 493
18.4.5  元素插入 494
18.4.6  大小和容量 494
18.4.7  元素存取 494
18.4.8  字符串比較 495
18.4.9  提取子串 495
18.4.10  搜索與查找 495
18.5  小結(jié) 496
18.6  上機(jī)實踐習(xí)題 496
第19章  編碼風(fēng)格 497
19.1  程序的排版 497
19.1.1  注釋 497
19.1.2  空行的用法 498
19.1.3  代碼行 498
19.1.4  空格 498
19.1.5  縮進(jìn)與對齊 499
19.1.6  &和*的位置 499
19.2  命名規(guī)則 499
19.2.1  Windows風(fēng)格和Unix風(fēng)格 500
19.2.2  如何對程序?qū)嶓w命名 500
19.3  項目文件的組織 500
19.3.1  模塊劃分 500
19.3.2  頭文件 500
19.3.3  定義文件 501
19.3.4  目錄結(jié)構(gòu) 501
19.4  小結(jié) 501
19.5  上機(jī)實踐習(xí)題 502
第20章  程序編譯 503
20.1  程序的編譯流程 503
20.2  預(yù)處理 504
20.2.1  頭文件包含 505
20.2.2  宏 505
20.2.3  條件編譯 506
20.2.4  #ifdef、 #ifndef與重復(fù)包含 507
20.2.5  使用const代替#define定義常量 508
20.2.6  inline與#define的比較 509
20.3  VC6調(diào)試入門 509
20.3.1  斷點的設(shè)置與去除 509
20.3.2  條件斷點 510
20.3.3  數(shù)據(jù)斷點 510
20.3.4  消息斷點 511
20.3.5  觀察視圖(Watch) 511
20.3.6  內(nèi)存視圖(Memory) 511
20.3.7  變量視圖(Variables) 511
20.3.8  寄存器視圖(Registers) 511
20.3.9  調(diào)用堆棧視圖(Call Stack) 512
20.3.10  反匯編視圖(Disassembly) 512
20.3.11  進(jìn)程控制 512
20.4  其他調(diào)試手段 512
20.4.1  Debug模式和Release模式 512
20.4.2  assert宏 512
20.4.3  輸出字符串 513
20.5  小結(jié) 513
20.6  上機(jī)實踐習(xí)題 513
第六篇  面試題精選
第21章  常見面試題 517
21.1  常見基本知識問答題 517
面試題1:簡述面向?qū)ο蟮?個基本特征 517
面試題2:局部變量能否和全局變量重名 517
面試題3:類成員函數(shù)的重載、覆蓋和隱藏的區(qū)別是什么 518
面試題4:用變量a給出下面的定義 518
面試題5:在C++中,下面的結(jié)構(gòu)是合法的嗎?如果是,其作用是什么 519
面試題6:在非C++中建類 A 和 B,在哪幾種情況下B能隱式轉(zhuǎn)化為A 519
面試題7:C++中的空類,默認(rèn)產(chǎn)生哪些類成員函數(shù) 519
面試題8:C++有哪些性質(zhì)(面向?qū)ο筇攸c) 519
面試題9:子類析構(gòu)時要調(diào)用父類的析構(gòu)函數(shù)嗎 520
面試題10:什么是引用?聲明和使用“引用”要注意哪些問題 520
面試題11:將引用作為函數(shù)返回值類型的格式及優(yōu)點有哪些 520
面試題12:引用與指針的區(qū)別是什么 520
面試題13:重載和重寫(覆蓋)的區(qū)別 520
面試題14:多態(tài)的作用是什么 520
面試題15:請指出const與#define相比有何優(yōu)點 521
面試題16:C語言中static關(guān)鍵字的具體作用有哪些 521
面試題17:如何判斷程序是由C 編譯程序還是由C++編譯程序編譯的 521
面試題18:關(guān)鍵字const的含義是什么 521
21.2  世界500強公司的智力問答題 522
面試題19:工人分金條 522
面試題20:分蛋糕 522
面試題21:過橋問題 522
面試題22:黑白帽子 523
面試題23:電梯與鉆石 523
面試題24:手電筒傳遞 523
面試題25:燒繩問題 524
面試題26:圓的下水道蓋子 524
面試題27:選建筑師 524
面試題28:天平分鹽 524
面試題29:分不開的錢 524
面試題30:小鳥追火車 525
面試題31:給紅色最大的機(jī)會 525
面試題32:鏡子中的影像 525
面試題33:污染的藥丸 525
面試題34:稱出不是標(biāo)準(zhǔn)重量的水 525
面試題35:多彩的果凍 526
面試題36:電子游戲機(jī) 526
面試題37:監(jiān)獄里的囚犯 526
面試題38:燈的狀態(tài) 526
面試題39:時針和分針 527
面試題40:3個奇數(shù) 527
面試題41:屋內(nèi)的燈 527
面試題42:找出最重的球 528
面試題43:盲人分襪子 528
面試題44:燒香計時 528
面試題45:平分蜂蜜 528
面試題46:猜經(jīng)理女兒的年齡 528
面試題47:兩個圓環(huán) 529
面試題48:喝啤酒 529
面試題49:算24點 529
面試題50:聰明人 529
面試題51:海盜分金幣 529
面試題52:到底是什么牌 530
面試題53:聰明的老板娘 531
面試題54:找出不同重量的球 531
21.3  分析題 532
面試題55:分析下面的程序段,顯示最后的結(jié)果 532
面試題56:分析程序最后的輸出結(jié)果 532
面試題57:分析最后輸出的結(jié)果 533
面試題58:求下面函數(shù)的返回值 533
面試題59:分析最后輸出的結(jié)果 534
面試題60:分析最后輸出的結(jié)果 535
21.4  編程題 536
面試題61:結(jié)果輸出到文件 536
面試題62:String類的具體實現(xiàn) 537
面試題63:鏈表題,一個鏈表的節(jié)點結(jié)構(gòu) 538
面試題64:寫一個函數(shù)并找出在一個整數(shù)數(shù)組中第二大的數(shù) 540
面試題65:字符串的逆序輸出 541
面試題66:判斷操作系統(tǒng)的位數(shù) 541
面試題67:實現(xiàn)對數(shù)組的降序排序 542
面試題68:斐波那契數(shù)列1、1、2、3、5等,編寫程序求第10項 543

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號