注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計程序設(shè)計綜合完美C++(第5版 雙色)

完美C++(第5版 雙色)

完美C++(第5版 雙色)

定 價:¥148.00

作 者: Walter,Savitch(沃爾特.薩維奇),Kenrick,Mock(肯里克.默克)著 薛正華 譯
出版社: 電子工業(yè)出版社
叢編項:
標 簽: C C++ C# VC VC++ 程序設(shè)計 計算機/網(wǎng)絡(luò)

ISBN: 9787121231988 出版時間: 2014-07-01 包裝: 平裝
開本: 頁數(shù): 788 字數(shù):  

內(nèi)容簡介

  本書為讀者提供了一個學(xué)習、理解和掌握 C++編程語言的全面視圖,覆蓋面廣、實用性強。書中介紹了 C++的基本數(shù)據(jù)類型,如字符串、數(shù)組、指針、結(jié)構(gòu)體、類等,同時也詳細描述了面向?qū)ο缶幊陶Z言的特性:封裝、繼承和多態(tài),以及這些特性在 C++語言中的具體使用方式。本書的后面章節(jié)還重點介紹了模板、鏈式數(shù)據(jù)結(jié)構(gòu)、標準模板庫以及異常處理等C++語言的進階編程知識。這些知識在從事具體編程工作時會經(jīng)常使用到。本書對C++的一些重點知識,輔以實例進行了重點講解,特別是對一些易混淆、易犯錯的知識點,專門以“陷阱”的組織方式進行深入分析和討論,幫助讀者更好地理解和掌握。書中各章均含有大量例子及完整的代碼段和分析,幫助讀者強化對關(guān)鍵概念的理解,以及對主題的掌握。各章還配有豐富的自測習題以及答案,幫助讀者進一步提升對C++知識的理解以及實際動手編程能力。原書由知名學(xué)者所著,歷經(jīng)多個版本,根據(jù)C++技術(shù)的發(fā)展,內(nèi)容不斷完善、豐富,體系完整、實踐性強。

作者簡介

  加州大學(xué)圣迭戈分校計算機科學(xué)與工程系教授,于1969年在加州大學(xué)伯克利分校獲得博士學(xué)位。他的研究領(lǐng)域包括復(fù)雜性理論、形式語言理論以及計算機語言學(xué)等。除了為數(shù)眾多的研究論文外,他還著有多部計算機科學(xué)教材,包括《absolute java》、《problem solving with c++》和《java:an introduction to computer sceience and programming》等。

圖書目錄

目錄
第1章 C++ 基礎(chǔ) 1
1.1 C++簡介 2
C++語言的起源 2
C++與面向?qū)ο缶幊?3
C++的特點 3
C++術(shù)語 3
C++程序示例 3
1.2 變量、表達式及賦值語句 5
標識符 5
變量 6
賦值語句 8
string類簡介 9
陷阱:未初始化變量 9
提示:采用有意義的變量名 10
更多賦值語句 11
賦值兼容性 11
字面值 12
轉(zhuǎn)義序列 14
命名常量 14
算數(shù)運算符和表達式 16
整數(shù)和浮點數(shù)除法 17
陷阱:全整數(shù)除法 17
類型轉(zhuǎn)換 18
自增和自減運算符 20
陷阱:求值順序 21
1.3 控制臺輸入/輸出 22
使用cout輸出 22
換行符 23
提示:以\n或endl結(jié)束程序 24
格式化浮點數(shù) 24
用cerr輸出 25
用cin輸入 25
提示:輸入/輸出中的換行 28
1.4 編程風格 28
注釋 28
1.5 庫與命名空間 29
庫與include命令 29
命名空間 29
陷阱:庫名的問題 30
第2章 流程控制 37
2.1 布爾表達式 38
創(chuàng)建布爾表達式 38
陷阱:不等式連寫 39
布爾表達式求值 40
優(yōu)先級規(guī)則 41
陷阱:整數(shù)值用作布爾值 44
2.2 分支機制 45
if-else語句 45
復(fù)合語句 47
陷阱:用=代替== 47
省略else 49
嵌套語句 49
多分支if-else語句 49
switch語句 50
陷阱:遺漏switch語句中的break 52
提示:在菜單中使用switch語句 52
枚舉類型 53
條件運算符 53
2.3 循環(huán) 54
while和do-while循環(huán) 54
再談自增和自減運算符 57
逗號運算符 58
for語句 59
提示:重復(fù)N次的循環(huán) 61
陷阱:for語句中額外的分號 62
陷阱:無限循環(huán) 62
break與continue語句 65
嵌套循環(huán) 67
2.4 文件輸入簡介 67
通過ifstream讀取文本文件內(nèi)容 68
第3章 函數(shù)基礎(chǔ) 81
3.1 預(yù)定義函數(shù) 82
帶有返回值的預(yù)定義函數(shù) 82
預(yù)定義的void函數(shù) 86
隨機數(shù)生成器 88
3.2 自定義函數(shù) 91
定義帶有返回值的函數(shù) 91
函數(shù)聲明的另一種形式 93
陷阱:參數(shù)順序的錯誤 93
調(diào)用函數(shù)的函數(shù) 94
示例:一個四舍五入的函數(shù) 94
返回布爾值的函數(shù) 96
定義void函數(shù) 96
void函數(shù)中的return語句 98
前提條件和運行結(jié)果 98
main函數(shù) 100
遞歸函數(shù) 100
3.3 作用域規(guī)則 101
局部變量 101
過程抽象 103
全局常量和全局變量 104
語句塊 106
嵌套作用域 107
提示:在分支和循環(huán)語句中使用函數(shù)調(diào)用 107
for循環(huán)體中的變量聲明 107
第4章 函數(shù)與重載 117
4.1 參數(shù) 118
傳值參數(shù) 118
初識引用參數(shù) 120
引用傳遞調(diào)用機制詳解 122
常量引用參數(shù) 124
示例:函數(shù)swapValues 124
提示:一種操作,而不是代碼 125
混合參數(shù)列表 126
提示:使用何種參數(shù) 126
陷阱:無意的局部變量 128
提示:選擇形參的名字 129
示例:買比薩 129
4.2 重載與默認實參 132
重載簡介 132
陷阱:自動類型轉(zhuǎn)換與重載 134
重載解析的規(guī)則 135
示例:改寫“買比薩程序” 136
默認參數(shù) 138
4.3 函數(shù)的測試和調(diào)試 140
assert宏 140
占位程序和驅(qū)動程序 141
第5章 數(shù)組 151
5.1 數(shù)組簡介 152
數(shù)組的聲明和引用 152
提示:對數(shù)組使用for循環(huán) 154
陷阱:數(shù)組的索引始終是從0開始的 154
提示:使用已定義的常量作為數(shù)組的大小 154
內(nèi)存中的數(shù)組 155
陷阱:數(shù)組越界 157
數(shù)組的初始化 157
5.2 函數(shù)中的數(shù)組 159
索引變量作為函數(shù)實參 159
整個數(shù)組作為函數(shù)實參 160
const修飾符 163
陷阱:const參數(shù)的不一致使用 164
返回數(shù)組的函數(shù) 164
示例:生產(chǎn)圖表 165
5.3 用數(shù)組編程 169
部分填充的數(shù)組 169
提示:不要吝嗇形參的使用 169
示例:查詢數(shù)組 172
示例:給數(shù)組排序 174
5.4 多維數(shù)組 178
多維數(shù)組基礎(chǔ) 178
多維數(shù)組參數(shù) 179
示例:使用二維數(shù)組的記分程序 179
第6章 結(jié)構(gòu)體和類 195
6.1 結(jié)構(gòu)體 196
結(jié)構(gòu)體類型 198
陷阱:漏掉結(jié)構(gòu)體定義末尾的分號 200
結(jié)構(gòu)體作為函數(shù)參數(shù) 201
提示:使用多重結(jié)構(gòu)體 201
結(jié)構(gòu)體的初始化 204
6.2 類 206
定義類和成員函數(shù) 206
封裝 211
公有成員和私有成員 211
取值和賦值函數(shù) 214
提示:接口和實現(xiàn)的分離 216
提示:封裝的測試 216
結(jié)構(gòu)體與類 217
提示:對象思考 217
第7章 構(gòu)造函數(shù)及其他工具 225
7.1 構(gòu)造函數(shù) 226
構(gòu)造函數(shù)的定義 226
陷阱:無參構(gòu)造函數(shù) 230
構(gòu)造函數(shù)的顯式調(diào)用 230
提示:總是為類定義一個默認構(gòu)造函數(shù) 231
示例:BankAccount類 233
類類型成員變量 238
7.2 其他工具 241
const修飾符 241
陷阱:const的不一致用法 243
內(nèi)聯(lián)函數(shù) 246
靜態(tài)成員 248
嵌套類和局部類定義 251
7.3 向量――標準模板庫預(yù)覽 251
向量基礎(chǔ) 252
陷阱:方括號的索引超過向量的大小 253
提示:向量的賦值 254
效率問題 255
第8章 運算符重載、友元和引用 263
8.1 基本運算符的重載 264
重載基礎(chǔ) 264
提示:構(gòu)造函數(shù)可以返回一個對象 269
返回常量類型 270
一元運算符的重載 272
作為成員函數(shù)的運算符重載 272
提示:類可以訪問其所有對象 275
重載函數(shù)調(diào)用符( ) 275
陷阱:重載 &&、||及逗號運算符 275
8.2 友元函數(shù)與自動類型轉(zhuǎn)換 276
構(gòu)造函數(shù)的自動類型轉(zhuǎn)換 276
陷阱:成員運算符和自動類型轉(zhuǎn)換 277
友元函數(shù) 277
友元類 280
陷阱:不支持友元的編譯器 281
8.3 引用和其他運算符重載 282
引用 282
提示:返回類的成員變量 283
重載“>>”和“<<” 284
提示:應(yīng)使用什么樣的返回值類型 289
賦值運算符 291
重載自增和自減運算符 291
重載數(shù)組運算符[ ] 294
基于左值和右值的重載 296
第9章 字符串 303
9.1 字符串類型數(shù)組 304
C字符串值和C字符串變量 304
陷阱:對C字符串使用 “=” 和 “==” 308
<cstring>中的其他函數(shù) 309
示例: 命令行參數(shù) 311
C字符串的輸入/輸出 313
9.2 字符操作工具 315
字符的輸入/輸出 315
成員函數(shù)get和put 315
示例:使用換行函數(shù)檢查輸入 318
陷阱:輸入時沒有處理‘\n’ 319
成員函數(shù)putback、peek和ignore 320
字符操作函數(shù) 322
陷阱:函數(shù)toupper和tolower返回int型數(shù)值 324
9.3 標準string類 325
標準string類簡介 325
string類的輸入和輸出 327
提示:getline函數(shù)的其他版本 330
陷阱:對cin同時使用>>和getline 331
使用string類處理字符串 331
示例: 回文檢測 335
string類對象和C字符串的轉(zhuǎn)換 338
第10章 指針和動態(tài)數(shù)組 347
10.1 指針 348
指針變量 349
內(nèi)存管理基礎(chǔ) 355
陷阱:懸空指針 357
動態(tài)變量和自動變量 358
提示:定義指針類型 358
陷阱:指針用作傳值參數(shù) 360
指針的應(yīng)用 361
10.2 動態(tài)數(shù)組 362
數(shù)組變量和指針變量 362
創(chuàng)建并使用動態(tài)數(shù)組 363
示例:一個返回數(shù)組的函數(shù) 366
指針運算 368
多維動態(tài)數(shù)組 368
10.3 類、指針和動態(tài)數(shù)組 371
運算符-> 371
this指針 371
重載賦值運算符 372
示例:部分填充數(shù)組的類 378
析構(gòu)函數(shù) 380
拷貝構(gòu)造函數(shù) 381
第11章 分散編譯和命名空間 391
11.1 分散編譯 392
封裝回顧 392
頭文件和實現(xiàn)文件 393
示例:DigitalTime類 399
提示:可重用的組件 401
使用#ifndef 401
提示:定義其他庫 403
11.2 命名空間 404
命名空間和using指令 404
創(chuàng)建一個命名空間 406
using聲明 409
限定名稱 410
提示:為命名空間取名 412
示例:一個定義在命名空間中的類 412
無名稱的命名空間 413
陷阱:混淆全局命名空間和無名稱命名空間 418
提示:用無名稱命名空間代替static修飾符 419
提示:隱藏幫助函數(shù) 419
嵌套命名空間 420
提示:應(yīng)該如何指明使用的命名空間 420
第12章 流和文件I/O操作 429
12.1 I/O流 430
文件I/O 431
陷阱:流變量的使用限制 434
向文件追加輸出內(nèi)容 435
提示: 打開文件的另一種方法 436
提示:檢查一個文件是否已被成功打開 439
字符I/O 440
文件結(jié)束檢查 440
12.2 I/O流工具 444
使用文件名輸入 444
使用流函數(shù)進行格式化輸出 444
控制符 447
保存設(shè)置的標記 448
更多的輸出流成員函數(shù) 449
示例:整理文件格式 450
示例:編輯文本文件 452
12.3 流的繼承層次:繼承概述 455
流之間的繼承 455
示例:另一版本的newLine函數(shù) 457
使用類stringstream解析字符串 460
12.4 隨機文件存取 462
第13章 遞歸 477
13.1 遞歸void函數(shù) 478
示例:豎直排列的數(shù)字 479
跟蹤一個遞歸調(diào)用 481
深入理解遞歸 484
陷阱:無限遞歸 485
遞歸調(diào)用中的棧 487
陷阱:棧溢出 488
遞歸與迭代的比較 488
13.2 有返回值的遞歸函數(shù) 489
有返回值的遞歸函數(shù)的一般形式 489
示例:另一個冪函數(shù) 490
交叉遞歸 494
13.3 按遞歸方式思考問題 496
遞歸設(shè)計技巧 496
二分查找 497
編碼 498
檢查遞歸是否正確 501
效率 502
第14章 繼承 513
14.1 繼承基礎(chǔ) 514
派生類 514
派生類的構(gòu)造函數(shù) 522
陷阱:使用基類的私有成員變量 524
陷阱:私有成員函數(shù)是無法被有效繼承的 526
protected限定符 526
成員函數(shù)的重定義 529
重定義與重載 530
訪問被重定義過的基類函數(shù) 531
不可被繼承的函數(shù) 532
14.2 利用繼承編程 533
派生類中的賦值運算符和拷貝構(gòu)造函數(shù) 533
派生類的析構(gòu)函數(shù) 534
示例:可備份的部分填充的數(shù)組 534
陷阱:賦值運算符兩邊是同一個對象 541
示例:PFArrayDBak的另一種實現(xiàn) 542
提示:一個類可以訪問本類所有對象的私有成員 544
提示:“是一個”和“有一個” 544
保護繼承和私有繼承 545
多繼承 546
第15章 多態(tài)與虛函數(shù) 555
15.1 虛函數(shù)基礎(chǔ) 556
延遲綁定 556
C++中的虛函數(shù) 557
提示:virtual屬性會被繼承 563
提示:什么時候應(yīng)該使用虛函數(shù) 563
陷阱:沒有對虛成員函數(shù)進行定義 564
抽象類與純虛函數(shù) 564
示例:抽象類 565
15.2 指針和虛函數(shù) 567
虛函數(shù)與擴展類型兼容性 567
陷阱:切片問題 571
提示:使析構(gòu)函數(shù)成為虛函數(shù) 572
向下類型轉(zhuǎn)換和向上類型轉(zhuǎn)換 573
C++如何實現(xiàn)虛函數(shù) 574
第16章 模板 585
16.1 函數(shù)模板 586
函數(shù)模板語法 587
陷阱:編譯器的復(fù)雜性 590
提示:如何定義模板 592
示例:一個通用的排序函數(shù) 592
陷阱:使用模板時誤用了不正確的數(shù)據(jù)類型 596
16.2 類模板 597
類模板語法 598
示例:一個數(shù)組模板類 601
模板中的vector和 basic_string 606
16.3 模板和繼承 606
示例: 帶備份的部分填充數(shù)組模板類 607
第17章 鏈式數(shù)據(jù)結(jié)構(gòu) 617
17.1 節(jié)點和鏈表 619
節(jié)點 619
鏈表 623
在鏈表頭插入節(jié)點 625
陷阱:丟失節(jié)點 627
插入和刪除鏈表內(nèi)的節(jié)點 628
陷阱:對動態(tài)數(shù)據(jù)結(jié)構(gòu)使用賦值運算符 631
搜索鏈表 631
搜索函數(shù)偽代碼 632
雙向鏈表 633
為雙向鏈表增加一個節(jié)點 635
從雙向鏈表中刪除一個節(jié)點 635
示例: 使用雙向鏈表實現(xiàn)的通用排序模板函數(shù) 641
17.2 鏈表的應(yīng)用 644
示例:棧模板類 644
示例:隊列模板類 650
提示:命名空間的注解 652
友元類以及類似的其他選擇 653
示例:包含節(jié)點鏈的哈希表 655
字符串哈希函數(shù) 656
哈希表的效率 660
示例:集合(set)模板類 661
集合的基本操作 662
鏈表創(chuàng)建的集合的效率 667
17.3 迭代器 668
指針作為迭代器 668
迭代器類 669
示例:迭代器類 670
17.4 樹 676
樹的屬性 676
示例:樹模板類 678
第18章 異常處理 695
18.1 異常處理基礎(chǔ) 696
異常處理的簡單樣例 697
定義自己的異常類 704
多個拋出和捕獲 704
陷阱:首先捕獲比較明確的異常 707
提示:異常類可以很簡單 708
在函數(shù)中拋出異常 708
異常說明 710
陷阱:派生類中的異常說明 712
18.2 異常處理的編程技術(shù) 713
拋出異常的時機 713
陷阱:未被捕獲的異常 714
陷阱:嵌套try-catch塊 715
陷阱:過度使用異常 715
異常類層次結(jié)構(gòu) 715
可用內(nèi)存測試 716
再次拋出異常 716
第19章 標準模板庫 721
19.1 迭代器 723
迭代器基礎(chǔ) 723
陷阱:編譯器問題 726
迭代器的種類 728
常量迭代器和可變迭代器 731
反向迭代器 732
其他種類的迭代器 733
19.2 容器 734
連續(xù)容器 734
陷阱:迭代器和刪除元素 738
提示:容器中的類型定義 739
容器適配器棧和隊列 739
陷阱:底層容器 740
關(guān)聯(lián)式容器set和map 742
效率 747
19.3 泛型算法 748
運行時間和大-O表示法 749
容器訪問運行時間 752
不改變序列的算法 753
改變序列的算法 757
集合算法 758
排序算法 760

本目錄推薦

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