C++ Primer Plus 第六版中文版原書電子檔(PDF) + 程式碼與習題解答

C++ Primer Plus 第六版中文版原書電子檔(PDF) + 程式碼與習題解答

C++ Primer Plus 第六版中文版原書電子檔(PDF) + 程式碼與習題解答


資料來源:: https://github.com/ShujiaHuang/Cpp-Primer-Plus-6th

链接: https://pan.baidu.com/s/1WXc_hfJhJKL4c8InAVXHMg  提取密码: cg2f


已收藏到自己百度網盤(百度雲盤)

書本目錄:
版權信息
版權聲明
內容提要
作者簡介
前言
第1章 預備知識
1.1 C++簡介
1.2 C++簡史
1.2.1 C語言
1.2.2 C語言編程原理
1.2.3 面向對象編程
1.2.4 C++和泛型編程
1.2.5 C++的起源
1.3 可移植性和標准
1.3.1 C++的發展
1.3.2 本書遵循的C++標准
1.4 程序創建的技巧
1.4.1 創建源代碼文件
1.4.2 編譯和鏈接
1.5 總結
第2章 開始學習C++
2.1 進入C++
2.1.1 main( )函數
2.1.2 C++注釋
2.1.3 C++預處理器和iostream文件2.3 其他C++語句
2.3.1 使用cin
2.3.2 使用cout進行拼接
2.3.3 類簡介
2.4 函數
2.4.1 使用有返回值的函數
2.4.2 函數變體
2.4.3 用戶定義的函數
2.4.4 用戶定義的有返回值的函數
2.4.5 在多函數程序中使用using編譯指令
2.5 總結
2.6 復習題
2.7 編程練習
第3章 處理數據
3.1 簡單變量
3.1.1 變量名
3.1.2 整型
3.1.3 整型short、int、long和long long
3.1.4 無符號類型
3.1.5 選擇整型類型
3.1.6 整型字面值
3.1.7 C++如何確定常量的類型
3.1.8 char類型:字符和小整數
3.1.9 bool類型
3.2 const限定符
3.3 浮點數
3.3.1 書寫浮點數
3.3.2 浮點類型
3.3.3 浮點常量
3.3.4 浮點數的優缺點
3.4 C++算朮運算符
3.4.1 運算符優先級和結合性
3.4.2 除法分支
3.4.3 求模運算符
3.4.4 類型轉換
3.4.5 C++11中的auto聲明
3.5 總結3.6 復習題
3.7 編程練習
第4章 復合類型
4.1 數組
4.1.1 程序說明
4.1.2 數組的初始化規則
4.1.3 C++11數組初始化方法
4.2 字符串
4.2.1 拼接字符串常量
4.2.2 在數組中使用字符串
4.2.3 字符串輸入
4.2.4 每次讀取一行字符串輸入
4.2.5 混合輸入字符串和數字
4.3 string類簡介
4.3.1 C++11字符串初始化
4.3.2 賦值、拼接和附加
4.3.3 string類的其他操作
4.3.4 string類I/O
4.3.5 其他形式的字符串字面值
4.4 結搆簡介
4.4.1 在程序中使用結搆
4.4.2 C++11結搆初始化
4.4.3 結搆可以將string類作為成員嗎
4.4.4 其他結搆屬性
4.4.5 結搆數組
4.4.6 結搆中的位字段
4.5 共用體
4.6 枚舉
4.6.1 設置枚舉量的值
4.6.2 枚舉的取值范圍
4.7 指針和自由存儲空間
4.7.1 聲明和初始化指針
4.7.2 指針的危險
4.7.3 指針和數字
4.7.4 使用new來分配內存
4.7.5 使用delete釋放內存
4.7.6 使用new來創建動態數組4.8 指針、數組和指針算朮
4.8.1 程序說明
4.8.2 指針小結
4.8.3 指針和字符串
4.8.4 使用new創建動態結搆
4.8.5 自動存儲、靜態存儲和動態存儲
4.9 類型組合
4.10 數組的替代品
4.10.1 模板類vector
4.10.2 模板類array(C++11)
4.10.3 比較數組、vector對象和array對象
4.11 總結
4.12 復習題
4.13 編程練習
第5章 循環和關系表達式
5.1 for循環
5.1.1 for循環的組成部分
5.1.2 回到for循環
5.1.3 修改步長
5.1.4 使用for循環訪問字符串
5.1.5 遞增運算符(++)和遞減運算符(−−)
5.1.6 副作用和順序點
5.1.7 前綴格式和后綴格式
5.1.8 遞增/遞減運算符和指針
5.1.9 組合賦值運算符
5.1.10 復合語句(語句塊)
5.1.11 其他語法技巧—逗號運算符
5.1.12 關系表達式
5.1.13 賦值、比較和可能犯的錯誤
5.1.14 C-風格字符串的比較
5.1.15 比較string類字符串
5.2 while循環
5.2.1 for與while
5.2.2 等待一段時間:編寫延時循環
5.3 do while循環
5.4 基於范圍的for循環(C++11)
5.5 循環和文本輸入5.5.1 使用原始的cin進行輸入
5.5.2 使用cin.get(char)進行補救
5.5.3 使用哪一個cin.get( )
5.5.4 文件尾條件
5.5.5 另一個cin.get( )版本
5.6 嵌套循環和二維數組
5.6.1 初始化二維數組
5.6.2 使用二維數組
5.7 總結
5.8 復習題
5.9 編程練習
第6章 分支語句和邏輯運算符
6.1 if語句
6.1.1 if else語句
6.1.2 格式化if else語句
6.1.3 if else if else結搆
6.2 邏輯表達式
6.2.1 邏輯OR運算符:||
6.2.2 邏輯AND運算符:&&
6.2.3 用&&來設置取值范圍
6.2.4 邏輯NOT運算符:!
6.2.5 邏輯運算符細節
6.2.6 其他表示方式
6.3 字符函數庫cctype
6.4 ?:運算符
6.5 switch語句
6.5.1 將枚舉量用作標簽
6.5.2 switch和if else
6.6 break和continue語句
6.7 讀取數字的循環
6.8 簡單文件輸入/輸出
6.8.1 文本I/O和文本文件
6.8.2 寫入到文本文件中
6.8.3 讀取文本文件
6.9 總結
6.10 復習題
6.11 編程練習第7章 函數——C++的編程模塊
7.1 復習函數的基本知識
7.1.1 定義函數
7.1.2 函數原型和函數調用
7.2 函數參數和按值傳遞
7.2.1 多個參數
7.2.2 另外一個接受兩個參數的函數
7.3 函數和數組
7.3.1 函數如何使用指針來處理數組
7.3.2 將數組作為參數意味着什么
7.3.3 更多數組函數示例
7.3.4 使用數組區間的函數
7.3.5 指針和const
7.4 函數和二維數組
7.5 函數和C-風格字符串
7.5.1 將C-風格字符串作為參數的函數
7.5.2 返回C-風格字符串的函數
7.6 函數和結搆
7.6.1 傳遞和返回結搆
7.6.2 另一個處理結搆的函數示例
7.6.3 傳遞結搆的地址
7.7 函數和string對象
7.8 函數與array對象
7.9 遞歸
7.9.1 包含一個遞歸調用的遞歸
7.9.2 包含多個遞歸調用的遞歸
7.10 函數指針
7.10.1 函數指針的基礎知識
7.10.2 函數指針示例
7.10.3 深入探討函數指針
7.10.4 使用typedef進行簡化
7.11 總結
7.12 復習題
7.13 編程練習
第8章 函數探幽
8.1 C++內聯函數
8.2 引用變量8.2.1 創建引用變量
8.2.2 將引用用作函數參數
8.2.3 引用的屬性和特別之處
8.2.4 將引用用於結搆
8.2.5 將引用用於類對象
8.2.6 對象、繼承和引用
8.2.7 何時使用引用參數
8.3 默認參數
8.4 函數重載
8.4.1 重載示例
8.4.2 何時使用函數重載
8.5 函數模板
8.5.1 重載的模板
8.5.2 模板的局限性
8.5.3 顯式具體化
8.5.4 實例化和具體化
8.5.5 編譯器選擇使用哪個函數版本
8.5.6 模板函數的發展
8.6 總結
8.7 復習題
8.8 編程練習
第9章 內存模型和名稱空間
9.1 單獨編譯
9.2 存儲持續性、作用域和鏈接性
9.2.1 作用域和鏈接
9.2.2 自動存儲持續性
9.2.3 靜態持續變量
9.2.4 靜態持續性、外部鏈接性
9.2.5 靜態持續性、內部鏈接性
9.2.6 靜態存儲持續性、無鏈接性
9.2.7 說明符和限定符
9.2.8 函數和鏈接性
9.2.9 語言鏈接性
9.2.10 存儲方案和動態分配
9.3 名稱空間
9.3.1 傳統的C++名稱空間
9.3.2 新的名稱空間特性9.3.3 名稱空間示例
9.3.4 名稱空間及其前途
9.4 總結
9.5 復習題
9.6 編程練習
第10章 對象和類
10.1 過程性編程和面向對象編程
10.2 抽象和類
10.2.1 類型是什么
10.2.2 C++中的類
10.2.3 實現類成員函數
10.2.4 使用類
10.2.5 修改實現
10.2.6 小結
10.3 類的搆造函數和析搆函數
10.3.1 聲明和定義搆造函數
10.3.2 使用搆造函數
10.3.3 默認搆造函數
10.3.4 析搆函數
10.3.5 改進Stock類
10.3.6 搆造函數和析搆函數小結
10.4 this指針
10.5 對象數組
10.6 類作用域
10.6.1 作用域為類的常量
10.6.2 作用域內枚舉(C++11)
10.7 抽象數據類型
10.8 總結
10.9 復習題
10.10 編程練習
第11章 使用類
11.1 運算符重載
11.2 計算時間:一個運算符重載示例
11.2.1 添加加法運算符
11.2.2 重載限制
11.2.3 其他重載運算符
11.3 友元11.3.1 創建友元
11.3.2 常用的友元:重載<<運算符
11.4 重載運算符:作為成員函數還是非成員函數
11.5 再談重載:一個矢量類
11.5.1 使用狀態成員
11.5.2 為Vector類重載算朮運算符
11.5.3 對實現的說明
11.5.4 使用Vector類來模擬隨機漫步
11.6 類的自動轉換和強制類型轉換
11.6.1 轉換函數
11.6.2 轉換函數和友元函數
11.7 總結
11.8 復習題
11.9 編程練習
第12章 類和動態內存分配
12.1 動態內存和類
12.1.1 復習示例和靜態類成員
12.1.2 特殊成員函數
12.1.3 回到Stringbad:復制搆造函數的哪里出了問題
12.1.4 Stringbad的其他問題:賦值運算符
12.2 改進后的新String類
12.2.1 修訂后的默認搆造函數
12.2.2 比較成員函數
12.2.3 使用中括號表示法訪問字符
12.2.4 靜態類成員函數
12.2.5 進一步重載賦值運算符
12.3 在搆造函數中使用new時應注意的事項
12.3.1 應該和不應該
12.3.2 包含類成員的類的逐成員復制
12.4 有關返回對象的說明
12.4.1 返回指向const對象的引用
12.4.2 返回指向非const對象的引用
12.4.3 返回對象
12.4.4 返回const對象
12.5 使用指向對象的指針
12.5.1 再談new和delete
12.5.2 指針和對象小結12.5.3 再談定位new運算符
12.6 復習各種技朮
12.6.1 重載<<運算符
12.6.2 轉換函數
12.6.3 其搆造函數使用new的類
12.7 隊列模擬
12.7.1 隊列類
12.7.2 Customer類
12.7.3 ATM模擬
12.8 總結
12.9 復習題
12.10 編程練習
第13章 類繼承
13.1 一個簡單的基類
13.1.1 派生一個類
13.1.2 搆造函數:訪問權限的考慮
13.1.3 使用派生類
13.1.4 派生類和基類之間的特殊關系
13.2 繼承:is-a關系
13.3 多態公有繼承
13.3.1 開發Brass類和BrassPlus類
13.4 靜態聯編和動態聯編
13.4.1 指針和引用類型的兼容性
13.4.2 虛成員函數和動態聯編
13.4.3 有關虛函數注意事項
13.5 訪問控制:protected
13.6 抽象基類
13.6.1 應用ABC概念
13.6.2 ABC理念
13.7 繼承和動態內存分配
13.7.1 第一種情況:派生類不使用new
13.7.2 第二種情況:派生類使用new
13.7.3 使用動態內存分配和友元的繼承示例
13.8 類設計回顧
13.8.1 編譯器生成的成員函數
13.8.2 其他的類方法
13.8.3 公有繼承的考慮因素13.8.4 類函數小結
13.9 總結
13.10 復習題
13.11 編程練習
第14章 C++中的代碼重用
14.1 包含對象成員的類
14.1.1 valarray類簡介
14.1.2 Student類的設計
14.1.3 Student類示例
14.2 私有繼承
14.2.1 Student類示例(新版本)
14.2.2 使用包含還是私有繼承
14.2.3 保護繼承
14.2.4 使用using重新定義訪問權限
14.3 多重繼承
14.3.1 有多少Worker
14.3.2 哪個方法
14.3.3 MI小結
14.4 類模板
14.4.1 定義類模板
14.4.2 使用模板類
14.4.3 深入探討模板類
14.4.4 數組模板示例和非類型參數
14.4.5 模板多功能性
14.4.6 模板的具體化
14.4.7 成員模板
14.4.8 將模板用作參數
14.4.9 模板類和友元
14.4.10 模板別名(C++11)
14.5 總結
14.6 復習題
14.7 編程練習
第15章 友元、異常和其他
15.1 友元
15.1.1 友元類
15.1.2 友元成員函數
15.1.3 其他友元關系15.1.4 共同的友元
15.2 嵌套類
15.2.1 嵌套類和訪問權限
15.2.2 模板中的嵌套
15.3 異常
15.3.1 調用abort( )
15.3.2 返回錯誤碼
15.3.3 異常機制
15.3.4 將對象用作異常類型
15.3.5 異常規范和C++11
15.3.6 棧解退
15.3.7 其他異常特性
15.3.8 exception類
15.3.9 異常、類和繼承
15.3.10 異常何時會迷失方向
15.3.11 有關異常的注意事項
15.4 RTTI
15.4.1 RTTI的用途
15.4.2 RTTI的工作原理
15.5 類型轉換運算符
15.6 總結
15.7 復習題
15.8 編程練習
第16章 string類和標准模板庫
16.1 string類
16.1.1 搆造字符串
16.1.2 string類輸入
16.1.3 使用字符串
16.1.4 string還提供了哪些功能
16.1.5 字符串種類
16.2 智能指針模板類
16.2.1 使用智能指針
16.2.2 有關智能指針的注意事項
16.2.3 unique_ptr為何優於auto_ptr
16.2.4 選擇智能指針
16.3 標准模板庫
16.3.1 模板類vector16.3.2 可對矢量執行的操作
16.3.3 對矢量可執行的其他操作
16.3.4 基於范圍的for循環(C++11)
16.4 泛型編程
16.4.1 為何使用迭代器
16.4.2 迭代器類型
16.4.3 迭代器層次結搆
16.4.4 概念、改進和模型
16.4.5 容器種類
16.4.4 關聯容器
16.4.5 無序關聯容器(C++11)
16.5 函數對象
16.5.1 函數符概念
16.5.2 預定義的函數符
16.5.3 自適應函數符和函數適配器
16.6 算法
16.6.1 算法組
16.6.2 算法的通用特徵
16.6.3 STL和string類
16.6.4 函數和容器方法
16.6.5 使用STL
16.7 其他庫
16.7.1 vector、valarray和array
16.7.2 模板initializer_list(C++11)
16.7.3 使用initializer_list
16.8 總結
16.9 復習題
16.10 編程練習
第17章 輸入、輸出和文件
17.1 C++輸入和輸出概述
17.1.1 流和緩沖區
17.1.2 流、緩沖區和iostream文件
17.1.3 重定向
17.2 使用cout進行輸出
17.2.1 重載的<<運算符
17.2.2 其他ostream方法
17.2.3 刷新輸出緩沖區17.2.4 用cout進行格式化
17.3 使用cin進行輸入
17.3.1 cin>>如何檢查輸入
17.3.2 流狀態
17.3.3 其他istream類方法
17.3.4 其他istream方法
17.4 文件輸入和輸出
17.4.1 簡單的文件I/O
17.4.2 流狀態檢查和is_open( )
17.4.3 打開多個文件
17.4.4 命令行處理技朮
17.4.5 文件模式
17.4.6 隨機存取
17.5 內核格式化
17.6 總結
17.7 復習題
17.8 編程練習
第18章 探討C++新標准
18.1 復習前面介紹過的C++11功能
18.1.1 新類型
18.1.2 統一的初始化
18.1.3 聲明
18.1.4 智能指針
18.1.5 異常規范方面的修改
18.1.6 作用域內枚舉
18.1.7 對類的修改
18.1.8 模板和STL方面的修改
18.1.9 右值引用
18.2 移動語義和右值引用
18.2.1 為何需要移動語義
18.2.2 一個移動示例
18.2.3 移動搆造函數解析
18.2.4 賦值
18.2.5 強制移動
18.3 新的類功能
18.3.1 特殊的成員函數
18.3.2 默認的方法和禁用的方法18.3.3 委托搆造函數
18.3.4 繼承搆造函數
18.3.5 管理虛方法:override和final
18.4 Lambda函數
18.4.1 比較函數指針、函數符和Lambda函數
18.4.2 為何使用lambda
18.5 包裝器
18.5.1 包裝器function及模板的低效性
18.5.2 修復問題
18.5.3 其他方式
18.6 可變參數模板
18.6.1 模板和函數參數包
18.6.2 展開參數包
18.6.3 在可變參數模板函數中使用遞歸
18.7 C++11新增的其他功能
18.7.1 并行編程
18.7.2 新增的庫
18.7.3 低級編程
18.7.4 雜項
18.8 語言變化
18.8.1 Boost項目
18.8.2 TR1
18.8.3 使用Boost
18.9 接下來的任務
18.10 總結
18.11 復習題
18.12 編程練習
附錄A 計數系統
A.1 十進制數
A.2 八進制整數
A.3 十六進制數
A.4 二進制數
A.5 二進制和十六進制
附錄B C++保留字
B.1 C++關鍵字
B.2 替代標記
B.3 C++庫保留名稱B.4 有特殊含義的標識符
附錄C ASCII字符集
附錄D 運算符優先級
附錄E 其他運算符
E.1 按位運算符
E.1.1 移位運算符
E.1.2 邏輯按位運算符
E.1.3 按位運算符的替代表示
E.1.4 几種常用的按位運算符技朮
E.2 成員解除引用運算符
E.3 alignof(C++11)
E.4 noexcept(C++11)
附錄F 模板類string
F.1 13種類型和一個常量
F.2 數據信息、搆造函數及其他
F.2.1 默認搆造函數
F.2.2 使用C-風格字符串的搆造函數
F.2.3 使用部分C-風格字符串的搆造函數
F.2.4 使用左值引用的搆造函數
F.2.5 使用右值引用的搆造函數(C++11)
F.2.6 使用一個字符的n個副本的搆造函數
F.2.7 使用區間的搆造函數
F.2.8 使用初始化列表的搆造函數(C++11)
F.2.9 內存雜記
F.3 字符串存取
F.4 基本賦值
F.5 字符串搜索
F.5.1 find( )系列
F.5.2 rfind( )系列
F.5.3 find_first_of( )系列
F.5.4 find_last_of( )系列
F.5.5 find_first_not_of( )系列
F.5.6 find_last_not_of( )系列
F.6 比較方法和函數
F.7 字符串修改方法
F.7.1 用於追加和相加的方法
F.7.2 其他賦值方法F.7.3 插入方法
F.7.4 清除方法
F.7.5 替換方法
F.7.6 其他修改方法:copy( )和swap( )
F.8 輸出和輸入
附錄G 標准模板庫方法和函數
G.1 STL和C++11
G.1.1 新增的容器
G.1.2 對C++98容器所做的修改
G.2 大部分容器都有的成員
G.3 序列容器的其他成員
G.4 set和map的其他操作
G.4 無序關聯容器(C++11)
G.5 STL函數
G.5.1 非修改式序列操作
G.5.2 修改式序列操作
G.5.3 排序和相關操作
G.5.4 數值運算
附錄H 精選讀物和網上資源
H.1 精選讀物
H.2 網上資源
附錄I 轉換為ISO標准C++
I.1 使用一些預處理器編譯指令的替代品
I.1.1 使用const而不是#define來定義常量
I.1.2 使用inline而不是# define來定義小型函數
I.2 使用函數原型
I.3 使用類型轉換
I.4 熟悉C++特性
I.5 使用新的頭文件
I.6 使用名稱空間
I.7 使用智能指針
I.8 使用string類
I.9 使用STL
附錄J 復習題答案
歡迎來到異步社區!
異步社區的來曆
社區里都有什么?購買圖書
下載資源
與作譯者互動
靈活優惠的購書
紙電圖書組合購買
社區里還可以做什么?
提交勘誤
寫作
會議活動早知道
加入異步

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *