C++模板編程領域經典著作,深入講解模板編程的基本原理、標準庫中算法與容器等模板的實現原理、模板編程的高級技巧,以及C++11的模板新特性。 資深C++開發工程師撰寫,以透徹分析原理為前提,以實踐為導向,能有效指導讀者動手編寫各類模板。
基本介紹
- 書名:深入實踐C++模板編程
- 作者:溫宇傑
- ISBN:9787111427544
- 頁數:316
- 定價:69.00元
- 出版社:機械工業出版社
- 出版時間:2013-6
- 裝幀:平裝
內容介紹,作者簡介,部分目錄,前言/序言,
內容介紹
C++模板編程領域的經典著作,由資深C++開發工程師撰寫。本書以透徹分析原理為前提,深入講解了模板編程的基本原理、標準庫中算法與容器等模板的實現原理;以實踐為導向,通過大量的模板向讀者展示了如何使用模板進行編程以及如何編寫自定義模板。除此之外,本書還總結了各種常用的模板編程技巧、C++11標準中的模板新特性和新語法,以及C++11中新增的其他語言特性。
全書共16章,分為四部分:第一部分(第1~4章)首先介紹了模板編程的基本概念與用法,然後重點討論了編譯器對模板的具體實現方法及其局限,讀者可以通過本部分內容理解模板的基本原理並自行實現簡單的類模板與函式模板。第二部分(第5~9章)對標準庫中的算法與容器的實現原理和用法進行了深入地剖析,讀者通過本部分內容對標準庫中的算法、疊代器與容器之間的關係有深入的理解,從而可以精確調節標準容器的行為,自行開發適用於標準算法的容器類模板。第三部分(第10~13章)討論了模板編程的高級技巧,如模板編程中“概念”的設計、控制代碼量的技術、編譯期邏輯的控制以及元編程的基本方法等,讀者可以通過本部分內容開發更具規模、更加智慧型的模板庫,並利用元編程技術實現編譯期的邏輯演繹與類型推導。第四部分(第14~16章)介紹了C++11標準中的新增語言特性,以及對模板編程的影響。
作者簡介
溫宇傑,資深C++軟體工程師,有多年C++開發經驗,對C++模板編程和元編程有非常深入的研究,實踐經驗十分豐富。擅長組合最佳化算法及大規模積體電路輔助設計算法,對FPGA體系結構以及Verilog和VHDL等硬體描述語言也有非常深入的研究,曾主持並參與開發了一套完整設計流程的FPGA平台編譯軟體。
部分目錄
前言
第一部分 模板基礎
第1章 Hello模板 / 2
1.1 為什麼需要模板 / 2
1.2 初識函式模板 / 3
1.2.1 函式模板的實現 / 3
1.2.2 如何使用函式模板 / 4
1.2.3 模板參數自動推導 / 5
1.2.4 模板參數默認值 / 7
1.2.5 模板函式的靜態變數 / 8
1.3 如何處理函式模板中的函式體 / 8
1.3.1 HPP檔案還是CPP檔案 / 9
1.3.2 連結器如何識別重複模板實例 / 10
1.4 尷尬的Export Template / 13
1.4.1 什麼是外名模板 / 13
1.4.2 C++編譯器對外名模板的處理 / 14
1.5 本章小結 / 15
第一部分 模板基礎
第1章 Hello模板 / 2
1.1 為什麼需要模板 / 2
1.2 初識函式模板 / 3
1.2.1 函式模板的實現 / 3
1.2.2 如何使用函式模板 / 4
1.2.3 模板參數自動推導 / 5
1.2.4 模板參數默認值 / 7
1.2.5 模板函式的靜態變數 / 8
1.3 如何處理函式模板中的函式體 / 8
1.3.1 HPP檔案還是CPP檔案 / 9
1.3.2 連結器如何識別重複模板實例 / 10
1.4 尷尬的Export Template / 13
1.4.1 什麼是外名模板 / 13
1.4.2 C++編譯器對外名模板的處理 / 14
1.5 本章小結 / 15
......
前言/序言
為什麼要寫這本書
筆者在工作中最常用的程式語言就是C++。在最初接觸C++語言的時候,只當它是C語言與面向對象編程的組合,在寫代碼時也是積極實踐“萬物皆對象”的法則,不管什麼操作,總要將其在某個對象的某個成員函式中實現才滿意。但在長年的編程實踐過程中,卻常常對面向對象的設計方法產生懷疑。
面向對象的設計思想,是將與某個數據類型相關的操作與該數據類型捆綁在一起,構成一個整體。然而,有時候操作並不完全依賴於數據類型。同一種算法,可能適用於不同的數據類型。
筆者在工作中最常用的程式語言就是C++。在最初接觸C++語言的時候,只當它是C語言與面向對象編程的組合,在寫代碼時也是積極實踐“萬物皆對象”的法則,不管什麼操作,總要將其在某個對象的某個成員函式中實現才滿意。但在長年的編程實踐過程中,卻常常對面向對象的設計方法產生懷疑。
面向對象的設計思想,是將與某個數據類型相關的操作與該數據類型捆綁在一起,構成一個整體。然而,有時候操作並不完全依賴於數據類型。同一種算法,可能適用於不同的數據類型。