首 頁(yè)
手機(jī)版

完美C++(第5版) 薩維奇pdf掃描版

  • 軟件大小:19.09M
  • 軟件語(yǔ)言:簡(jiǎn)體中文
  • 軟件類(lèi)型:國(guó)產(chǎn)軟件
  • 軟件授權(quán):免費(fèi)軟件
  • 更新時(shí)間:2023/08/28
  • 軟件類(lèi)別:電子閱讀
  • 應(yīng)用平臺(tái):Windows11,Windows10,Windows8,Windows7,WinXP
網(wǎng)友評(píng)分:10.0分
網(wǎng)友評(píng)論 下載地址 收藏該頁(yè)
本地下載

完美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)行閱讀

收起介紹展開(kāi)介紹
  • 下載地址
完美C++(第5版) 薩維奇pdf掃描版

有問(wèn)題? 點(diǎn)此報(bào)錯(cuò)

發(fā)表評(píng)論

0條評(píng)論

熱門(mén)推薦