完美C++(第5版)是一本c++語(yǔ)言學(xué)習(xí)教材,是美國(guó)常青藤名校十?dāng)?shù)年指定C++教材,它由加州大學(xué)圣迭戈分校計(jì)算機(jī)科學(xué)與工程系教授Walter Savitch薩維奇編著。本書(shū)很全面地介紹了c++語(yǔ)言的相關(guān)知識(shí),其內(nèi)容布置清晰、簡(jiǎn)明各章均有大量例子及完整的代碼段和分析,并且還詳細(xì)介紹了繼承、多態(tài)、異常處理和標(biāo)準(zhǔn)模板庫(kù)(STL)等c++相關(guān)知識(shí),有利于讀者對(duì)關(guān)鍵概念的理解,為讀者提供了一個(gè)學(xué)習(xí)、理解和掌握C++編程語(yǔ)言的全面視圖,覆蓋面廣、實(shí)用性非常強(qiáng),是本不可多得的好書(shū)。
完美C++(第5版)采用了第4版相同的編程哲學(xué),主要更新內(nèi)容包括:第1章增加了字符串類(lèi)的簡(jiǎn)單介紹,第2章增加了文本文件數(shù)據(jù)讀取的簡(jiǎn)單介紹;第12章增加了對(duì)stringstream的價(jià)紹;第13章簡(jiǎn)捷地介紹了尾遞歸的概念并且給出了一個(gè)相互遞歸的例子;另外增加了10個(gè)自測(cè)練習(xí)題和25個(gè)編程項(xiàng)目練習(xí)。
內(nèi)容介紹
完美C++(第5版)為讀者提供了一個(gè)學(xué)習(xí)、理解和掌握 C++編程語(yǔ)言的全面視圖,覆蓋面廣、實(shí)用性強(qiáng)。書(shū)中介紹了 C++的基本數(shù)據(jù)類(lèi)型,如字符串、數(shù)組、指針、結(jié)構(gòu)體、類(lèi)等,同時(shí)也詳細(xì)描述了面向?qū)ο缶幊陶Z(yǔ)言的特性:封裝、繼承和多態(tài),以及這些特性在 C++語(yǔ)言中的具體使用方式。本書(shū)的后面章節(jié)還重點(diǎn)介紹了模板、鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)、標(biāo)準(zhǔn)模板庫(kù)以及異常處理等C++語(yǔ)言的進(jìn)階編程知識(shí)。這些知識(shí)在從事具體編程工作時(shí)會(huì)經(jīng)常使用到。
完美C++(第5版)對(duì)C++的一些重點(diǎn)知識(shí),輔以實(shí)例進(jìn)行了重點(diǎn)講解,特別是對(duì)一些易混淆、易犯錯(cuò)的知識(shí)點(diǎn),專(zhuān)門(mén)以“陷阱”的組織方式進(jìn)行深入分析和討論,幫助讀者更好地理解和掌握。書(shū)中各章均含有大量例子及完整的代碼段和分析,幫助讀者強(qiáng)化對(duì)關(guān)鍵概念的理解,以及對(duì)主題的掌握。各章還配有豐富的自測(cè)習(xí)題以及答案,幫助讀者進(jìn)一步提升對(duì)C++知識(shí)的理解以及實(shí)際動(dòng)手編程能力。
完美C++(第5版)章節(jié)目錄
第1章 C++ 基礎(chǔ)
1.1 C++簡(jiǎn)介
C++語(yǔ)言的起源
C++與面向?qū)ο缶幊?
C++的特點(diǎn)
C++術(shù)語(yǔ)
C++程序示例
1.2 變量、表達(dá)式及賦值語(yǔ)句
標(biāo)識(shí)符
變量
賦值語(yǔ)句
string類(lèi)簡(jiǎn)介
陷阱:未初始化變量
提示:采用有意義的變量名
更多賦值語(yǔ)句
賦值兼容性
字面值
轉(zhuǎn)義序列
命名常量
算數(shù)運(yùn)算符和表達(dá)式
整數(shù)和浮點(diǎn)數(shù)除法
陷阱:全整數(shù)除法
類(lèi)型轉(zhuǎn)換
自增和自減運(yùn)算符
陷阱:求值順序
1.3 控制臺(tái)輸入/輸出
使用cout輸出
換行符
提示:以\n或endl結(jié)束程序
格式化浮點(diǎn)數(shù)
用cerr輸出
用cin輸入
提示:輸入/輸出中的換行
1.4 編程風(fēng)格
注釋
1.5 庫(kù)與命名空間
庫(kù)與include命令
命名空間
陷阱:庫(kù)名的問(wèn)題
第2章 流程控制
2.1 布爾表達(dá)式
創(chuàng)建布爾表達(dá)式
陷阱:不等式連寫(xiě)
布爾表達(dá)式求值
優(yōu)先級(jí)規(guī)則
陷阱:整數(shù)值用作布爾值
2.2 分支機(jī)制
if-else語(yǔ)句
復(fù)合語(yǔ)句
陷阱:用=代替==
省略else
嵌套語(yǔ)句
多分支if-else語(yǔ)句
switch語(yǔ)句
陷阱:遺漏switch語(yǔ)句中的break
提示:在菜單中使用switch語(yǔ)句
枚舉類(lèi)型
條件運(yùn)算符
2.3 循環(huán)
while和do-while循環(huán)
再談自增和自減運(yùn)算符
逗號(hào)運(yùn)算符
for語(yǔ)句
提示:重復(fù)N次的循環(huán)
陷阱:for語(yǔ)句中額外的分號(hào)
陷阱:無(wú)限循環(huán)
break與continue語(yǔ)句
嵌套循環(huán)
2.4 文件輸入簡(jiǎn)介
通過(guò)ifstream讀取文本文件內(nèi)容
第3章 函數(shù)基礎(chǔ)
3.1 預(yù)定義函數(shù)
帶有返回值的預(yù)定義函數(shù)
預(yù)定義的void函數(shù)
隨機(jī)數(shù)生成器
3.2 自定義函數(shù)
定義帶有返回值的函數(shù)
函數(shù)聲明的另一種形式
陷阱:參數(shù)順序的錯(cuò)誤
調(diào)用函數(shù)的函數(shù)
示例:一個(gè)四舍五入的函數(shù)
返回布爾值的函數(shù)
定義void函數(shù)
void函數(shù)中的return語(yǔ)句
前提條件和運(yùn)行結(jié)果
main函數(shù)
遞歸函數(shù)
3.3 作用域規(guī)則
局部變量
過(guò)程抽象
全局常量和全局變量
語(yǔ)句塊
嵌套作用域
提示:在分支和循環(huán)語(yǔ)句中使用函數(shù)調(diào)用
for循環(huán)體中的變量聲明
第4章 函數(shù)與重載
4.1 參數(shù)
傳值參數(shù)
初識(shí)引用參數(shù)
引用傳遞調(diào)用機(jī)制詳解
常量引用參數(shù)
示例:函數(shù)swapValues
提示:一種操作,而不是代碼
混合參數(shù)列表
提示:使用何種參數(shù)
陷阱:無(wú)意的局部變量
提示:選擇形參的名字
示例:買(mǎi)比薩
4.2 重載與默認(rèn)實(shí)參
重載簡(jiǎn)介
陷阱:自動(dòng)類(lèi)型轉(zhuǎn)換與重載
重載解析的規(guī)則
示例:改寫(xiě)"買(mǎi)比薩程序"
默認(rèn)參數(shù)
4.3 函數(shù)的測(cè)試和調(diào)試
assert宏
占位程序和驅(qū)動(dòng)程序
第5章 數(shù)組
5.1 數(shù)組簡(jiǎn)介
數(shù)組的聲明和引用
提示:對(duì)數(shù)組使用for循環(huán)
陷阱:數(shù)組的索引始終是從0開(kāi)始的
提示:使用已定義的常量作為數(shù)組的大小
內(nèi)存中的數(shù)組
陷阱:數(shù)組越界
數(shù)組的初始化
5.2 函數(shù)中的數(shù)組
索引變量作為函數(shù)實(shí)參
整個(gè)數(shù)組作為函數(shù)實(shí)參
const修飾符
陷阱:const參數(shù)的不一致使用
返回?cái)?shù)組的函數(shù)
示例:生產(chǎn)圖表
5.3 用數(shù)組編程
部分填充的數(shù)組
提示:不要吝嗇形參的使用
示例:查詢數(shù)組
示例:給數(shù)組排序
5.4 多維數(shù)組
多維數(shù)組基礎(chǔ)
多維數(shù)組參數(shù)
示例:使用二維數(shù)組的記分程序
第6章 結(jié)構(gòu)體和類(lèi)
6.1 結(jié)構(gòu)體
結(jié)構(gòu)體類(lèi)型
陷阱:漏掉結(jié)構(gòu)體定義末尾的分號(hào)
結(jié)構(gòu)體作為函數(shù)參數(shù)
提示:使用多重結(jié)構(gòu)體
結(jié)構(gòu)體的初始化
6.2 類(lèi)
定義類(lèi)和成員函數(shù)
封裝
公有成員和私有成員
取值和賦值函數(shù)
提示:接口和實(shí)現(xiàn)的分離
提示:封裝的測(cè)試
結(jié)構(gòu)體與類(lèi)
提示:對(duì)象思考
第7章 構(gòu)造函數(shù)及其他工具
7.1 構(gòu)造函數(shù)
構(gòu)造函數(shù)的定義
陷阱:無(wú)參構(gòu)造函數(shù)
構(gòu)造函數(shù)的顯式調(diào)用
提示:總是為類(lèi)定義一個(gè)默認(rèn)構(gòu)造函數(shù)
示例:BankAccount類(lèi)
類(lèi)類(lèi)型成員變量
7.2 其他工具
const修飾符
陷阱:const的不一致用法
內(nèi)聯(lián)函數(shù)
靜態(tài)成員
嵌套類(lèi)和局部類(lèi)定義
7.3 向量――標(biāo)準(zhǔn)模板庫(kù)預(yù)覽
向量基礎(chǔ)
陷阱:方括號(hào)的索引超過(guò)向量的大小
提示:向量的賦值
效率問(wèn)題
第8章 運(yùn)算符重載、友元和引用
8.1 基本運(yùn)算符的重載
重載基礎(chǔ)
提示:構(gòu)造函數(shù)可以返回一個(gè)對(duì)象
返回常量類(lèi)型
一元運(yùn)算符的重載
作為成員函數(shù)的運(yùn)算符重載
提示:類(lèi)可以訪問(wèn)其所有對(duì)象
重載函數(shù)調(diào)用符( )
陷阱:重載 &&、||及逗號(hào)運(yùn)算符
8.2 友元函數(shù)與自動(dòng)類(lèi)型轉(zhuǎn)換
構(gòu)造函數(shù)的自動(dòng)類(lèi)型轉(zhuǎn)換
陷阱:成員運(yùn)算符和自動(dòng)類(lèi)型轉(zhuǎn)換
友元函數(shù)
友元類(lèi)
陷阱:不支持友元的編譯器
8.3 引用和其他運(yùn)算符重載
引用
提示:返回類(lèi)的成員變量
重載">>"和"<<"
提示:應(yīng)使用什么樣的返回值類(lèi)型
賦值運(yùn)算符
重載自增和自減運(yùn)算符
重載數(shù)組運(yùn)算符[ ]
基于左值和右值的重載
第9章 字符串
9.1 字符串類(lèi)型數(shù)組
C字符串值和C字符串變量
陷阱:對(duì)C字符串使用 "=" 和 "=="
<cstring>中的其他函數(shù)
示例: 命令行參數(shù)
C字符串的輸入/輸出
9.2 字符操作工具
字符的輸入/輸出
成員函數(shù)get和put
示例:使用換行函數(shù)檢查輸入
陷阱:輸入時(shí)沒(méi)有處理'\n'
成員函數(shù)putback、peek和ignore
字符操作函數(shù)
陷阱:函數(shù)toupper和tolower返回int型數(shù)值
9.3 標(biāo)準(zhǔn)string類(lèi)
標(biāo)準(zhǔn)string類(lèi)簡(jiǎn)介
string類(lèi)的輸入和輸出
提示:getline函數(shù)的其他版本
陷阱:對(duì)cin同時(shí)使用>>和getline
使用string類(lèi)處理字符串
示例: 回文檢測(cè)
string類(lèi)對(duì)象和C字符串的轉(zhuǎn)換
第10章 指針和動(dòng)態(tài)數(shù)組
10.1 指針
指針變量
內(nèi)存管理基礎(chǔ)
陷阱:懸空指針
動(dòng)態(tài)變量和自動(dòng)變量
提示:定義指針類(lèi)型
陷阱:指針用作傳值參數(shù)
指針的應(yīng)用
10.2 動(dòng)態(tài)數(shù)組
數(shù)組變量和指針變量
創(chuàng)建并使用動(dòng)態(tài)數(shù)組
示例:一個(gè)返回?cái)?shù)組的函數(shù)
指針運(yùn)算
多維動(dòng)態(tài)數(shù)組
10.3 類(lèi)、指針和動(dòng)態(tài)數(shù)組
運(yùn)算符->
this指針
重載賦值運(yùn)算符
示例:部分填充數(shù)組的類(lèi)
析構(gòu)函數(shù)
拷貝構(gòu)造函數(shù)
第11章 分散編譯和命名空間
11.1 分散編譯
封裝回顧
頭文件和實(shí)現(xiàn)文件
示例:DigitalTime類(lèi)
提示:可重用的組件
使用#ifndef
提示:定義其他庫(kù)
11.2 命名空間
命名空間和using指令
創(chuàng)建一個(gè)命名空間
using聲明
限定名稱(chēng)
提示:為命名空間取名
示例:一個(gè)定義在命名空間中的類(lèi)
無(wú)名稱(chēng)的命名空間
陷阱:混淆全局命名空間和無(wú)名稱(chēng)命名空間
提示:用無(wú)名稱(chēng)命名空間代替static修飾符
提示:隱藏幫助函數(shù)
嵌套命名空間
提示:應(yīng)該如何指明使用的命名空間
第12章 流和文件I/O操作
12.1 I/O流
文件I/O
陷阱:流變量的使用限制
向文件追加輸出內(nèi)容
提示: 打開(kāi)文件的另一種方法
提示:檢查一個(gè)文件是否已被成功打開(kāi)
字符I/O
文件結(jié)束檢查
12.2 I/O流工具
使用文件名輸入
使用流函數(shù)進(jìn)行格式化輸出
控制符
保存設(shè)置的標(biāo)記
更多的輸出流成員函數(shù)
示例:整理文件格式
示例:編輯文本文件
12.3 流的繼承層次:繼承概述
流之間的繼承
示例:另一版本的newLine函數(shù)
使用類(lèi)stringstream解析字符串
12.4 隨機(jī)文件存取
第13章 遞歸
13.1 遞歸void函數(shù)
示例:豎直排列的數(shù)字
跟蹤一個(gè)遞歸調(diào)用
深入理解遞歸
陷阱:無(wú)限遞歸
遞歸調(diào)用中的棧
陷阱:棧溢出
遞歸與迭代的比較
13.2 有返回值的遞歸函數(shù)
有返回值的遞歸函數(shù)的一般形式
示例:另一個(gè)冪函數(shù)
交叉遞歸
13.3 按遞歸方式思考問(wèn)題
遞歸設(shè)計(jì)技巧
二分查找
編碼
檢查遞歸是否正確
效率
第14章 繼承
14.1 繼承基礎(chǔ)
派生類(lèi)
派生類(lèi)的構(gòu)造函數(shù)
陷阱:使用基類(lèi)的私有成員變量
陷阱:私有成員函數(shù)是無(wú)法被有效繼承的
protected限定符
成員函數(shù)的重定義
重定義與重載
訪問(wèn)被重定義過(guò)的基類(lèi)函數(shù)
不可被繼承的函數(shù)
14.2 利用繼承編程
派生類(lèi)中的賦值運(yùn)算符和拷貝構(gòu)造函數(shù)
派生類(lèi)的析構(gòu)函數(shù)
示例:可備份的部分填充的數(shù)組
陷阱:賦值運(yùn)算符兩邊是同一個(gè)對(duì)象
示例:PFArrayDBak的另一種實(shí)現(xiàn)
提示:一個(gè)類(lèi)可以訪問(wèn)本類(lèi)所有對(duì)象的私有成員
提示:"是一個(gè)"和"有一個(gè)"
保護(hù)繼承和私有繼承
多繼承
第15章 多態(tài)與虛函數(shù)
15.1 虛函數(shù)基礎(chǔ)
延遲綁定
C++中的虛函數(shù)
提示:virtual屬性會(huì)被繼承
提示:什么時(shí)候應(yīng)該使用虛函數(shù)
陷阱:沒(méi)有對(duì)虛成員函數(shù)進(jìn)行定義
抽象類(lèi)與純虛函數(shù)
示例:抽象類(lèi)
15.2 指針和虛函數(shù)
虛函數(shù)與擴(kuò)展類(lèi)型兼容性
陷阱:切片問(wèn)題
提示:使析構(gòu)函數(shù)成為虛函數(shù)
向下類(lèi)型轉(zhuǎn)換和向上類(lèi)型轉(zhuǎn)換
C++如何實(shí)現(xiàn)虛函數(shù)
第16章 模板
16.1 函數(shù)模板
函數(shù)模板語(yǔ)法
陷阱:編譯器的復(fù)雜性
提示:如何定義模板
示例:一個(gè)通用的排序函數(shù)
陷阱:使用模板時(shí)誤用了不正確的數(shù)據(jù)類(lèi)型
16.2 類(lèi)模板
類(lèi)模板語(yǔ)法
示例:一個(gè)數(shù)組模板類(lèi)
模板中的vector和 basic_string
16.3 模板和繼承
示例: 帶備份的部分填充數(shù)組模板類(lèi)
第17章 鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)
17.1 節(jié)點(diǎn)和鏈表
節(jié)點(diǎn)
鏈表
在鏈表頭插入節(jié)點(diǎn)
陷阱:丟失節(jié)點(diǎn)
插入和刪除鏈表內(nèi)的節(jié)點(diǎn)
陷阱:對(duì)動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)使用賦值運(yùn)算符
搜索鏈表
搜索函數(shù)偽代碼
雙向鏈表
為雙向鏈表增加一個(gè)節(jié)點(diǎn)
從雙向鏈表中刪除一個(gè)節(jié)點(diǎn)
示例: 使用雙向鏈表實(shí)現(xiàn)的通用排序模板函數(shù)
17.2 鏈表的應(yīng)用
示例:棧模板類(lèi)
示例:隊(duì)列模板類(lèi)
提示:命名空間的注解
友元類(lèi)以及類(lèi)似的其他選擇
示例:包含節(jié)點(diǎn)鏈的哈希表
字符串哈希函數(shù)
哈希表的效率
示例:集合(set)模板類(lèi)
集合的基本操作
鏈表創(chuàng)建的集合的效率
17.3 迭代器
指針作為迭代器
迭代器類(lèi)
示例:迭代器類(lèi)
17.4 樹(shù)
樹(shù)的屬性
示例:樹(shù)模板類(lèi)
第18章 異常處理
18.1 異常處理基礎(chǔ)
異常處理的簡(jiǎn)單樣例
定義自己的異常類(lèi)
多個(gè)拋出和捕獲
陷阱:首先捕獲比較明確的異常
提示:異常類(lèi)可以很簡(jiǎn)單
在函數(shù)中拋出異常
異常說(shuō)明
陷阱:派生類(lèi)中的異常說(shuō)明
18.2 異常處理的編程技術(shù)
拋出異常的時(shí)機(jī)
陷阱:未被捕獲的異常
陷阱:嵌套try-catch塊
陷阱:過(guò)度使用異常
異常類(lèi)層次結(jié)構(gòu)
可用內(nèi)存測(cè)試
再次拋出異常
第19章 標(biāo)準(zhǔn)模板庫(kù)
19.1 迭代器
迭代器基礎(chǔ)
陷阱:編譯器問(wèn)題
迭代器的種類(lèi)
常量迭代器和可變迭代器
反向迭代器
其他種類(lèi)的迭代器
19.2 容器
連續(xù)容器
陷阱:迭代器和刪除元素
提示:容器中的類(lèi)型定義
容器適配器棧和隊(duì)列
陷阱:底層容器
關(guān)聯(lián)式容器set和map
效率
19.3 泛型算法
運(yùn)行時(shí)間和大-O表示法
容器訪問(wèn)運(yùn)行時(shí)間
不改變序列的算法
改變序列的算法
集合算法
排序算法
使用說(shuō)明
1、下載并解壓,得出pdf文件
2、如果打不開(kāi)本文件,請(qǐng)務(wù)必下載pdf閱讀器
3、安裝后,在打開(kāi)解壓得出的pdf文件
4、雙擊進(jìn)行閱讀
- 下載地址
發(fā)表評(píng)論
0條評(píng)論軟件排行榜
熱門(mén)推薦
- 瀟湘書(shū)院電腦版 v2.3.13.888官方版49.64M / 簡(jiǎn)體中文
- 網(wǎng)易新聞電腦版 v113.297.68M / 簡(jiǎn)體中文
- 京東讀書(shū)電腦版 v1.13.4官方版1.98M / 簡(jiǎn)體中文
- 數(shù)據(jù)挖掘?qū)д?官方版61.61M / 簡(jiǎn)體中文
- 吉利博瑞用戶手冊(cè) pdf高清版57.89M / 簡(jiǎn)體中文
- 網(wǎng)易云閱讀電腦版 v6.7.226.41M / 簡(jiǎn)體中文
- 未公開(kāi)的Oracle數(shù)據(jù)庫(kù)秘密 迪貝斯pdf掃描版34.69M / 簡(jiǎn)體中文
- PHP語(yǔ)言精粹電子書(shū) pdf掃描版25.72M / 簡(jiǎn)體中文
- linux常用命令大全 chm版1.48M / 簡(jiǎn)體中文
- 本草綱目 5.34M / 簡(jiǎn)體中文