通過這 9 本開源書,學好 C加加
書籍非常具有個人主觀性,編程類的書籍也不例外。但是不管書籍的風格,重點或者節奏如何,好的 C++ 編程書能帶讀者開啟一段引人入勝的旅程,拓展 C++ 語言的能力,向讀者展示如何使用C++來構建各種東西。
我精心挑選了一些 C++ 的書籍,這些書都非常值得一讀。我推薦的這 9 本書都是根據公共版權許可發行的書籍。在此之前,我先簡要介紹一下 C++。
C++ 是由Bjarne Stroustrup設計的,在1983年發布了第一個版本。它是一門靜態類型,通用的,可移植編程語言,形式自由,多範式,需要編譯。也因為它結合了高層次和低層次的語言特徵,被認為是一種中級語言。C++ 專為系統和應用程序編程而設計,它對 C 語言進行了擴展,自增操作符記為++,因此叫 C++。
C++ 一直是一門備受歡迎編程語言。例如,它被大量地用於嵌入式系統、銀行和電信領域。它是 C 語言的超集,保留了 C 語言的效率和便利的符號標記,同時提供更強大的類型檢查,多繼承,數據抽象,異常處理,運算符重載,泛型編程和面向對象編程的功能。C++ 對許多其他語言產生了影響,包括 C#、Java 以及 C 語言的發展。
《Boost C++ 類庫》(The Boost C++ Libraries)
想要一起學習C++的可以加裙二四八八九四四三零,裙內有各種資料滿足大家,歡迎加裙
作者 Boris Sch?ling,570 頁
Boost C++庫在C++世界中有非常重要的影響力。這些攜帶型的庫為諸多任務和結構提供了支持,包括多線程,容器,字元串和文本處理,迭代器,線性代數,偽隨機數生成,元程序設計模板,並發程序設計,數據結構,圖像處理,正則表達式和單元測試等。 Boost幾乎可以用於任何現代操作系統,包括Linux和Windows的衍生版本,同時也支持大多數現代編譯器。
本書介紹了72個非常實用的Boost庫,這些庫涵蓋的範圍非常廣,可以幫助程序員更容易地管理內存和處理字元串。這些庫還提供了擴展標準庫的多種容器和其他數據結構,使用這些庫可以輕鬆地構建獨立於平台的網路應用程序。
本書是值得添加到各類收藏的好東西。書里的430個代碼示例很好地闡明了這些庫的功能。
書中章節對內存管理,字元串處理,容器,數據結構,演算法,通信,流和文件以及時間等問題進行了研究。稍後的章節繼續探討了函數,並行性和泛型編程問題。在結尾覆蓋了大量有關語言擴展,錯誤信息以及數字處理,應用程序庫,設計模式和其他庫等內容。
Boost C++庫是根據Creative Commons Attribution – NonCommercial – NoDerivatives 4.0國際許可證發布的。如果您喜歡隨身攜帶書籍,可以在Amazon上購買紙質版。電子版也可以在kindle上購買,電子書和 PDF 格式都可以。
《C++註解》(C++ Annotations)
作者 Frank B. Brokken,1029 頁
本書提供了有關C++編程語言的全方位教程,可以用作C ++編程課程的教科書。它適用於熟悉C語言或者類似C語言語法的用戶。
包括以下章節:
命名空間
字元串——C語言提供了基本的字元串支持
I/O位元組流——提供了基於類概念的輸入/輸出(I / O)庫
類——C針對不同類型數據結構提供了兩種方法。 C結構體保存各種類型的數據成員,C聯合體也定義了各種類型的數據成員。本章介紹了另外一種結構——類,與結構體不同的是,類成員默認是私有的
靜態數據和函數
內存管理——用C++語言描述內存分配的運算符
異常——允許C++程序執行受控的非本地返回命令,彌補了非局部跳轉(longjmp)和設置局部跳轉(setjmp)函數的缺點
運算符重載——通用的運算符重載
抽象容器
繼承——派生的另一個術語。本章演示了基類指針可能用於指向派生類對象
多態——繼承的一種特殊形態
友元——介紹friend關鍵字及其使用原則
成員指針——定義指向成員的指針及其使用,靜態成員指針和指針長度
嵌套類——在嵌套類與其外圍類具有緊密概念關係的情況下使用
標準模板庫(STL)——由容器,通用演算法,迭代器,函數對象,分配器,適配器和數據結構組成的通用庫。這些演算法使用的數據結構是抽象的,可以與(實際上)任何數據類型一起使用
泛型演算法——涵蓋STL的通用演算法
函數模板——探討模板的句法特性。介紹了模板類型參數,模板非類型參數和函數模板的概念,並提供了多個模板示例
類模板——討論構建和使用類模板
高級模板使用——簡要介紹模板元編程的主要特徵和與模板相關的細微之處
這本書有HTML,PDF,PostScript和Txt格式。它可以自由分發,並根據GNU通用公共許可證的條款發布。
《通過Qt4 介紹C++中的設計模式》(Introduction to Design Patterns in C++ with Qt 4, An)
作者 艾倫·尤斯特(Paul Ezust), 656頁
本書首先介紹C++基本組成,面向對象的概念,UML(統一建模語言)和核心Qt類。進而轉向更高層次的編程思想,Qt模型和設計模式。最後一部分嚴謹地印證了C++的重要特性,完整地覆蓋了函數,繼承和多態性方面的內容。
該書旨在用於大學課程,面向沒有C或C ++編程經驗的讀者,還為教學工作者提供了Qt示例,練習,解決方案和授課幻燈片。
這本書是Bruce Perens開源系列的一部分。 本系列的所有圖書均以Open Publication License V1.0或更新版本發布。
《如何像計算機科學家一樣思考(C++篇)》(How to Think Like a Computer Scientist: C++)
作者Allen B. Downey,191頁
《如何像計算機科學家一樣思考》C++版本是一本簡潔文雅的介紹如何使用C++編程語言進行軟體設計的書。本書從最基本的概念開始,以閱讀者容易接受的速度逐漸增添新內容,旨在把沒有編程經驗的讀者培養成未來的開發人員。
本書的主要內容:
變數,表達式和語句
函數
條件和遞歸
豐富的函數
迭代
字元串
向量
成員函數
對象向量
向量對象
類和不變數
文件輸入/輸出和apMatrixes
本書是一本免費的C++版教科書,根據Creative Commons Attribution-NonCommercial 3.0 未本地化協議發布。
《基於Qt3的C++ 圖形界面編程》(C++ GUI Programming with Qt 3)
作者 Jasmin Blanchette,Mark Summerfield,464頁
Qt的最新穩定版本是5.8。 本書指導讀者如何使用Qt 3編寫圖形界面程序,Qt 3最近一個版本的是在2004年發布,但是有很多這本書對於Qt 4和Qt 5用戶來說仍然是有意義的。
本書需要讀者對C++有基本的了解,這不是一本面向初學者的書。
本書向讀者介紹了使用Qt編寫圖形界面應用程序的所有概念和實踐,對核心問題進行了詳細周密的講解,還提供一些專業前沿的學習資料。
這本書是Bruce Perens開源系列的一部分。本系列的所有圖書均以Open Publication License V1.0或更新版本發布的。
《開放式數據結構( C++版)》(Open Data Structures (in C++))
作者 Pat Morin,336頁
本書講授了基本的數據結構設計和分析及在C ++中的實現。它涵蓋了序列(列表),隊列,優先順序隊列,無序字典,有序字典以及圖的數據結構的實現和分析。作者意圖在於為計算機科學專業的學生提供一條研究數據結構的免費途徑。但是本書不是一本介紹C++編程語言或C++標準模板庫的書,但是它有助於程序員了解STL數據結構如何實現以及為什麼這些實現是高效的。
書中章節涵蓋了基於數組的列表,鏈表,分級鏈表,哈希表,二叉樹(包括隨機二叉搜索樹,替罪羊樹和紅黑樹)。稍後的章節介紹了堆,排序演算法(基於比較,計數排序和基數排序),圖,整型數據結構和外存搜索。
這本書是根據知識共享署名許可頒發的。我們可以免費閱讀這本書的HTML,PDF版本,本書的LaTeX版本,Java / C ++ / Python源碼可以從GitHub下載。還有平裝版購買。本書已被翻譯成斯洛維尼亞語和土耳其語。
作者 Julian Smart,Kevin Hock與Stefan CsomorBrifll,744頁
wxWidgets是一個流行的C++庫,它允許開發人員使用單一的代碼庫為Windows,Mac OS X,Linux和其他平台創建應用程序。它支持各種圖形庫。
本書的簡要介紹和入門章節涵蓋了以下內容:
事件處理
窗口基礎
繪圖
輸入事件處理
使用sizers窗口布局
使用標準對話框
創建自定義對話框
圖像編程
剪貼板和拖放
高級窗口類
數據結構類
文件和流
內存管理,調試和錯誤檢查
編寫國際化應用
編寫多線程應用程序
處理文檔和視圖
完善你的應用程序
這本書是Bruce Perens開源系列的一部分。本系列的所有圖書均以Open Publication License V1.0或更新版本發布。
《Rook的C++指南》(The Rook』s Guide to C++)
作者 Jeremy Hansen,160頁
書中的章節涵蓋變數,文本,常量,輸出輸入,數據類型和轉換,條件判斷(if,else和else if,switch語句),字元串,循環,數組,塊,函數和作用域。之後的章節對解決問題和問題定位進行了講述,包括預處理器,高級演算法,文件I / O,指針,動態數據,類和抽象,編譯分離和STL。
這本書的大部分內容是由25位諾維奇大學的學生在一個黑客馬拉松周寫的,雖然不夠完美,但還是一本不錯的書。 它是根據基於Creative Commons Attribution-NonCommercial-ShareAlike 3.0.協議發布許可證發布的,也可以從亞馬遜購買紙質版。
《GCC概述》(An Introduction to GCC)
作者 Brian Gough,144頁
本書主要介紹了 GNU C 和 C++編譯器:gcc 和 g ++。二者都是GNU編譯器集合(GCC)的一部分。
書中如何使用編譯器本身。作者根據多年來在郵件列表上發表的問題,引導讀者直接了解到GCC最重要的部分。
本書章節包括:
簡介
編譯C程序——介紹如何使用gcc編譯C程序。程序可能由單個源文件或多個源文件中編譯而成,也可以使用系統庫和頭文件
編譯選項——描述了GCC中可用編譯器中常見的其他選項。這些選項對應不同的功能,例如用於設置庫和所包含文件的搜索路徑,配置額外的警告和診斷信息,預處理器宏和C語言
使用預處理器——描述了GCC包內的GNU C預處理器cpp的使用,預處理器在源文件編譯之前擴展了宏。當GCC處理C或C ++程序時,預處理都會自動調用
編譯調試——提供-g調試選項,用於在目標文件和可執行文件中存儲附加的調試信息。這些調試信息可以將錯誤信息從特定的機器指令追溯到原始源文件中相應的行
編譯優化——GCC是一個優化編譯器。它提供了很多選項,旨在提高其生成的可執行文件的速度或減小文件大小
編譯C ++程序——描述了如何使用GCC編譯用C ++編寫程序,以及針對於該語言的命令行選項
平台特定選項——介紹常見平台的一些可用選項,如Intel和AMD x86選項,x86擴展選項,x86 64位處理器選項,DEC Alpha選項,SPARC選項,POWER / PowerPC選項,多體系架構支持以及浮點相關問題
疑難解答(問題定位)——GCC提供了幾個幫助和診斷選項,來幫助用戶定位編譯過程中的問題
與編譯器相關的工具——描述了很多與GCC結合使用的工具,包括用於創建庫的GNU歸檔器ar,以及GNU性能和覆蓋測試程序,gprof和gcov
編譯器如何工作——對GCC如何將源文件轉換為可執行文件進行了更詳細地描述。編譯是一個多階段的過程,涉及多個工具,包括GNU編譯器本身(通過gcc或g++前端),GNU 彙編器as和GNU 鏈接器ld。在編譯過程中使用的一套完整工具集稱為工具鏈
檢查編譯後的文件——描述了多種有用的工具,用於檢查可執行文件和目標文件的內容
常見錯誤消息——描述 gcc和g ++生成的最常見的錯誤和警告消息。每個案例都附有錯誤和警告信息產生原因的描述,以及相應的例子和可能的解決方案和建議
獲取幫助——如果讀者遇到簡介里未涉及的問題,還有多種參考手冊更詳細地描述了GCC和語言相關的主題
本書根據 GNU 自由文檔許可證發布。
想要一起學習C++的可以加裙二四八八九四四三零,裙內有各種資料滿足大家,歡迎加裙


※用C語言寫面向的對象是一種什麼樣的體驗
※C語言的趣味題目學習
※現代C加加函數式編程
※C加加線程同步的四種方式
※給那些初學C語言的朋友,手把手教做一個簡單的人機猜數遊戲
TAG:C加加 |
※緊急通知!今天起,無錫將開啟高溫40天加加加加加長模式!
※C/C加加新手應該怎麼學習,如何學習才有發展
※C/C加加高級講師多年經驗總結學習路線,希望幫到正迷茫的你
※無處不在的加加林:俄羅斯有個加加林市,還有加加林街
※給你的Xbox加加速,希捷推出專用固態硬碟
※有哪些適合新手練手的C/C加加項目
※元宵已經過了,2018不給自己加加碼?
※C語言/C加加編程學習,怎樣判斷某一文件是否存在
※加加加加班的深夜,需要來個超燃battle幫你回回回回血!
※三所俄羅斯大學將增加加密貨幣課程和學位
※新功能:Android P將增加加密DNS連接
※Sa花油麵膜|PICK對面膜,為你的夏日魅力加加分
※清水富美加加盟 《UFO學園的秘密》續篇將於今秋上映
※清水富美加加盟《UFO學園的秘密》續篇將於今秋上映
※從C語言實戰談C語言編程,談談C/C加加今後發展!
※第一個踏進太空的不是加加林,而是一隻狗,至今還在太空中
※加加林還未進入太空,蘇聯就做好了遇難聲明?加加林離奇的死因
※鑽井增加加劇供應過剩擔憂情緒 原油收跌創17個月新低
※太空第一人加加林鋼筆被高價拍賣 起拍價至少11萬
※俄羅斯4加加戰鬥機米格35再次被多方關注 出口前景到底如何