C++進階心法

呂呂,王琥著

  • 出版商: 北京航空航天大學
  • 出版日期: 2019-04-01
  • 定價: $534
  • 售價: 8.0$427
  • 語言: 簡體中文
  • 頁數: 513
  • 裝訂: 平裝
  • ISBN: 7512422407
  • ISBN-13: 9787512422407
  • 相關分類: C++ 程式語言
  • 立即出貨

買這商品的人也買了...

商品描述

本書共10章,其中,
第1章介紹了C、C 的基礎知識,包括關鍵字volatile、數組與指針、編譯模式等;
第2~9章介紹了C 基礎與進階語法,包括數據類型、引用、名字空間、
左值與右值,以及內存管理,面向對象的封裝、繼承與多態,程序異常處理和C 0x新標準等內容;
第10章給出了業界常見的編碼規範與建議。
本書不僅介紹了C 的傳統語法,而且還融入了C *的變革內容,旨在幫助讀者對C 有一個更加全面的了解,
快速地掌握C 編程技巧,並將其應用於工程實踐中。
本書既可作為C 編程人員以及相關專業技術人員的參考用書,
也可作為高等院校、高職高專院校程序設計相關課程的教學用書。

作者簡介

呂呂

畢業於華南理工大學,目前任職於騰訊公司,從事後台策略安全工作。
主要研究方向有高性能計算、業務安全防護。
具有多年的軟件行業從業經驗,CSDN博客專家。


王琥

畢業於華南理工大學,現為新加坡管理大學AI實驗室研究員,
主要研究方向有圖像分類識別,具有多年的軟件行業從業經驗。

目錄大綱

第1章C 中的C ………………………………………………………………… 1
1.1 認識volatile ……………………………………………………………………… 1
1.2 數組與指針詳解………………………………………………………………… 6
1.3 認識size_t和指針類型的大小…………………………………………………… 13
1.4 野指針…………………………………………………………………………… 16
1.5 字符數組的初始化與賦值………………………………………………………… 18
1.6 文字常量與常變量……………………………………………………………… 20
1.7 數據類型寬度擴展……………………………………………………………… 22
1.8 分離編譯模式簡介……………………………………………………………… 24

第2章C 基礎…………………………………………………………………… 28
2.1 C 發展概述…………………………………………………………………… 28
2.2 聲明與定義的區別……………………………………………………………… 29
2.3 認識初始化……………………………………………………………………… 32

2.4 結構體的初始化與賦值…………………………………………………………… 37
2.5 認識sizeof ……………………………………………………………………… 39
2.6 認識const ……………………………………………………………………… 49
2.7 struct與union…………………………………………………………………… 57
2.8 多字節字符串與寬字符串的相互轉換…………………………………………… 62
2.9 引用的本質……………………………………………………………………… 69
2.10 鍊式操作……………………………………………………………………… 73
2.11 C 的數據類型……………………………………………………………… 75
2.12 數據類型轉換…………………………………………………………………… 78
2.13 數值類型與string的相互轉換…………………………………………………… 91
2.14 臨時變量的常量性……………………………………………………………… 94
2.15 左值、右值和常引用…………………………………………………………… 96
2.16 mutable的用法………………………………………………………………… 99
2.17 名字空間……………………………………………………………………… 101
2.18 作用域與生命週期…………………………………………………………… 107
2.19 引用計數……………………………………………………………………… 112
2.20 I/O流簡介…………………………………………………………………… 119
2.21 頭文件的作用和用法………………………………………………… 136

第3章內存管理…………………………………………………………………… 141
3.1 程序內存佈局…………………………………………………………………… 141
3.2 堆與棧的區別…………………………………………………………………… 143
3.3 new的3種面貌………………………………………………………………… 155
3.4 delete的3種面貌……………………………………………………………… 158
3.5 new與delete的使用規範……………………………………………………… 164
3.6 智能指針簡介…………………………………………………………………… 168
3.7 STL的四種智能指針…………………………………………………………… 172
3.8 以智能指針管理內存資源……………………………………………………… 188
3.9 內存池介紹與經典內存池的實現………………………………………………… 191

第4章函數……………………………………………………………………… 199
4.1 關於main()函數的幾點說明…………………………………………………… 199
4.2 函數參數入棧的思考…………………………………………………………… 202
4.3 函數調用時堆棧的變化情況…………………………………………………… 206
4.4 如何禁止函數傳值調用………………………………………………………… 210
4.5 函數指針簡介…………………………………………………………………… 213
4.6 操作符重載…………………………………………………………………… 215
4.7 函數重載、隱藏、覆蓋和重寫的區別…………………………… 224
4.8 inline函數…………………………………………………………………… 230
4.9 變參函數……………………………………………………………………… 235

第5章類與對象…………………………………………………………………… 241
5.1 終結類………………………………………………………………………… 241
5.2 嵌套類與局部類………………………………………………………………… 243
5.3 純虛函數與抽像類……………………………………………………………… 245
5.4 臨時對象……………………………………………………………………… 249
5.5 構造函數體內賦值與初始化列表的區別…………………………………… 252
5.6 對象產生和銷毀的順序………………………………………………………… 253
5.7 類成員指針…………………………………………………………………… 254
5.8 控制對象的創建方式和數量…………………………………………………… 258
5.9 仿函數………………………………………………………………………… 263
5.10 explicit禁止構造函數的隱式調用……………………………………………… 267
5.11 類的設計與實現規範…………………………………………………………… 270

第6章繼承與多態………………………………………………………………… 275
6.1 多態的兩種形式………………………………………………………………… 275
6.2 繼承與組合的區別……………………………………………………………… 278
6.3 基類私有成員會被繼承嗎……………………………………………………… 282
6.4 虛擬繼承與虛基類……………………………………………………………… 285
6.5 typeid簡介……………………………………………………………………… 289
6.6 虛調用及其調用的具體形式…………………………………………………… 293
6.7 動態聯編實現原理分析…………………………………………………………297
6.8 接口繼承與實現繼承的區別和選擇……………………………………………… 306
6.9 獲取類成員虛函數地址………………………………………………………… 307
6.10 構造函數與析構函數調用虛函數的注意事項………………………… 309

第7章模板與泛型編程…………………………………………………………… 311
7.1 typename的雙重含義…………………………………………………………… 311
7.2 模板實例化與調用……………………………………………………………… 313
7.3 模板特化與模板偏特化………………………………………………………… 316
7.4 函數聲明對函數模板實例化的屏蔽……………………………………………… 323
7.5 模板與分離編譯模式…………………………………………………………… 324
7.6 endl的本質是什麼……………………………………………………………… 326
7.7 將模板聲明為友元……………………………………………………………… 330
7.8 認識容器的迭代器……………………………………………………………… 334
7.9 模板元編程簡介………………………………………………………………… 339

第8章C 0x初探……………………………………………………………… 348
8.1 新關鍵字……………………………………………………………………… 348
8.2 基於範圍的for循環…………………………………………………………… 361
8.3 就地初始化與列表初始化……………………………………………………… 365
8.4 Lambda表達式………………………………………………………………… 367
8.5 移動語義與右值引用…………………………………………………………… 373
8.6 POD類型……………………………………………………………………… 383
8.7 委託構造函數…………………………………………………………………… 388
8.8 繼承構造函數…………………………………………………………………… 390
8.9 Unicode支持…………………………………………………………………… 394
8.10 原生字符串…………………………………………………………………… 401
8.11 通用屬性……………………………………………………………………… 404
8.12 變參模板……………………………………………………………………… 407
8.13 函數模板的默認模板參數……………………………………………………… 417
8.14 折疊表達式…………………………………………………………………… 419
8.15 強類型枚舉簡介……………………………………………………………… 422
8.16 顯示類型轉換………………………………………………………………… 425

第9章異常處理…………………………………………………………………… 427
9.1 為什麼要引入異常處理機制…………………………………………………… 427
9.2 拋出異常與傳遞參數的區別…………………………………………………… 430
9.3 拋出和接收異常的順序………………………………………………………… 438
9.4 構造函數拋出異常的注意事項…………………………………………………… 442
9.5 析構函數禁止拋出異常………………………………………………………… 445
9.6 使用引用捕獲異常……………………………………………………………… 448
9.7 棧展開如何防止內存洩漏……………………………………………………… 451
9.8 異常處理的開銷………………………………………………………………… 453

第10章編碼規範與建議………………………………………………………… 456
10.1 命名方式建議………………………………………………………………… 456
10.2 代碼調試建議………………………………………………………………… 459
10.3 頭文件使用規范建議…………………………………………………………… 463
10.4 數使用規范建議…………………………………………………………… 469
10.5 作用域使用規范建議…………………………………………………………… ?472
10.6 類使用規范建議……………………………………………………………… 476
10.7 編碼格式建議………………………………………………………………… 485
10.8 註釋風格建議………………………………………………………………… 494
10.9 特性使用建議………………………………………………………………… 502
參考文獻……………………………………………………………………………… 513