當前位置:編程學習大全網 - 編程語言 - 如何快速的學習C++

如何快速的學習C++

大壹學習的c++,工作之後也壹直用的c++。

1. 涵蓋c++入門到精通的圖書列表

《The C programming language》必讀

《C++ Primer》,號稱是壹本可以讓妳從C或JAVA程序員轉為壹個真正的C++程序員的入門參考書,必讀。

《The C++ programming language》,C++之父,人稱B教主著作,在看過C++ primer後,應該可以跳章選讀。

《Think in c++》,網上說此書的中文版翻譯質量奇差,推薦看影印版,選讀。

《Effective c++》,類似 Effective java,講的是最佳實踐,程序員必讀。

《More effective c++》,上書的補充。

《The C++ standard library》,會寫C,不會用標準庫怎麽行。這就跟java程序員不會用java.util包壹樣,必讀。

《Effective STL》,STL庫的最佳實踐。Effective C++作者又壹力作,必讀。

《The annotated STL source》,STL源碼分析,這本書應該算是深入/精通類了,選讀。

《Generic programming and STL》,號稱C++編程裏,就是跟模板,泛型打交道,那麽精通泛型是勢在必行。

《C++ Template》,C++模板編程,代碼復用的經驗之道,必讀。

《Exceptional C++》,跟Effective C++類似,屬於最佳實踐和難題解析,書中列出了許多應用場景和實例代碼供讀者揣摩,選讀。

《More Exceptional C++》,上書的補充。

《Exceptional C++ Style》,上上書的補充

《Inside The C++ Object Model》,有了上面這些書做鋪墊,那麽終於可以讀此神書了。它會帶妳遊覽C++對象模型的底層實現機制。讀完此書,任何C++代碼看起來如同行雲流水,必讀。

2. 優秀的C/C++開源項目(閱讀代碼)

OS:Linux kernel LVS、Linux應用程序

DB:Mysql、PostgreSQL

Complier:VM、GCC

Framework:OpenSip、SipProxy、

Net:ACE(Java Mina、Netty)、TCP/IP、HTTP協議棧

Cache:Memcached、Redis、

Library:STL(java util package)、Boost、Qt(UI)、

balance:Apache、Nginx

GSL

地址:/microsoft/GSL

Boost文檔

地址:/

Qt

地址:/Asio/

POCO

地址:/w/cpp/links/libs

除了這些開源項目,也可以找壹些免費的公開課,那這裏也推薦壹個ACM金牌大佬講授的免費C++課程,可以去體驗壹下:

學好C++才是入職大廠的敲門磚! 當年要是有這課,我的C++也不至於這樣

已失效?

3.C++語法講解

語言基礎

詳細介紹變量、表達式、語句、指針、數組、流程控制、函數、文件組織等。

抽象機制 - 面向對象編程

深入講解C++的抽象機制,封裝(類)、繼承、多態;操作符重載、函數對象、異常處理等。

模板 - 泛型編程

詳細介紹C++的模板機制,類模板、函數模板、模板特化等方面的內容。

4.深入c++面向對象

4.1、從C到C++

引用和指針:為什麽引用很重要

const關鍵字:為什麽const很重要

名字空間 (namespace)

4.2、深入C++對象

關於C++對象

內置類型的對象,如int、double對象,自定義類型的對象

對象類型的定義

關鍵字class和struct

類成員:成員函數和數據成員

靜態數據成員

成員的訪問控制

對象的size

關於this指針

onst成員函數、const究竟修飾什麽

mutable數據成員

4種特殊成員函數:constructor、destructor、copy constructor、operator=

對象的構造、初始化列表

對象的析構

對象的復制

什麽情況下有必要顯式定義4種特殊函數

C++對象生命周

4.3、操作符重載

關於C++中操作符重載機制

重要操作符重載

算術運算:+, -, *, /, %, ++, --, ...

關系運算:>, <, ==, !=

下標存取:[ ]

函數調用:(),函數對象

類型轉換、單參數構造函數與隱式轉換、阻止隱式轉換 -- explicit關鍵字

友元與成員

4.4、面向對象基礎 -- 繼承

基類與派生類

再談對象的構造與析構

虛函數、純虛函數

派生類的內存布局、虛函數表

多態、多態類型、如何體現多態

虛析構、為什麽虛析構很重要

4.5、關於繼承更多的話題

多繼承

虛繼承與虛基類

對基類的訪問、public / protected / private繼承

Down cast:static_cast<>和dynamic_cast<>

運行期類型識別 (RTTI)

4.6、C++與面向對象設計

C++語言機制提供了完整的OOP支持

超越繼承

OOP若幹法則和設計模式

5.C++泛型編程與STL

5.1、C++ 模板機制

5.2、STL 概要

5.3、STL容器

5.4、STL叠代

5.5、STL算法

5.6、預與定義STL數對象

5.7、STL適配器

6. C++進階

《C++ Primer》

最新版本:第三版(第四版國外已上架, 國內壹些網上書店也在預訂中)

適合有豐富C經驗,缺乏C++經驗的。不過我個人壹直認為此書帶著過於強烈的C語言的痕跡,對於C++的學習未必是 好事。

《The C++ Programming Language》/《C++程序設計語言》

最新版本:第三版特別版

簡稱 TC++PL,有其他語言的豐富經驗的。(也有人簡稱之為“TCPL”,但需與另壹本《The C Programmer Language》區分開來)

《Essential C++》

《Accelerated C++》

這兩本薄壹些,都是不錯的選擇。《Accelerated C++》本人沒有讀過,從各方面的評價來看,完全值得推薦。

以上幾本書都有相應的中文版,而且翻譯的質量都不錯。上面的書未必都需要讀壹遍,但無論如何,TC++PL是應該閱讀的。

《Effective C++》

最新版本:第二版(第三版國外已上架,國內壹些網上書店也在預訂中)

簡稱EC。C++程序員必讀!很多時候,我們說C++聖經不是指TC++PL,而是這壹本。《The Pragmatic Programmer》壹書中寫到:“壹旦妳發現自己要參與C++項目的開發,趕快跑(不要走)到書店去購買Scott Mayer的《Effective C++》,可能還要《More Effective C++》”。

《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》/《C++ 編程規範》

個人認為此書應為C++程序員必備的案頭書。幾乎Effective系列和Exceptional系 列都在這裏得到了總結。最新的模版、異常的業界經驗都在這裏的到了體現。可能的唯壹缺陷就是對壹個新手而言,關於“為什麽這麽做”的問題,解釋的不夠。

我 的看法是:如果妳不理解其中的條款,記憶,並且照做;如果妳理解其中的條款,我猜妳壹定會同意書中的觀點。我認為這本書中的內容至少在2009年以前都不 會過時,人們將廣為傳誦它制定的101條戒律。

還不知道他的簡稱,也許“101”會成為壹個候選者?

提到《Effective C++》,那麽另外三本書壹壹浮出水面:

《More Effective C++》

《Exceptional C++》

《More Exceptional C++》。

新書《Exceptional C++ Style》也是值得壹看的好書。

上 述幾本書,壹本也不應該放過。

個人建議上述書籍按順序閱讀。並且,在將來反復閱讀這幾本書。

《Thinking in C++》/《C++編程思想》

這本書及其中文版傳言好壞都有,沒有認真看過,不做評價,如果確有興趣,不妨嘗試 壹下該書。

以下幾本書基本上涉及的都是語言本身,大體上可以按照以下的順序閱讀。

《C++必知必會》

如果早壹年,這本書將是重量級的,然而它被101和《Exceptional C++ Style》蓋過壹頭。

《C++ Gotchas: Avoiding Common Problems in Coding and Design》/《C++程序設計陷阱》

這又是壹本我未曾讀過,而且廣受好評的書。

《STL 源碼剖析》

這本書我剛到手,就被人"借"走,以至於到現在也沒有看過。看過這本書的朋友,可以給壹個合適的評價。

7. C++進階之數據結構基礎

這是所有編程語言中最應該學習的部分,程序組成的基礎之壹。

順序存儲、鏈式存儲、循環鏈表;

雙向鏈表、棧(順序和鏈式)、隊列(順序和鏈式);

棧的應用、樹基本概念及遍歷、二叉樹;

排序算法、並歸算法、選擇、插入、快速、希爾。

以上這些內容妳知道嗎?

8. C++進階之UI界面開發

掌握QT類庫構架,圖形界面開發模型;

掌握QT開發技巧,消息機制,圖形處理;

掌握QT網絡編程,UDP,TCP使用方式;

掌握QT文件處理方式,序列化;

掌握QT在windows,linux,ios,android不同平臺下的移植技術。

9. C++進階之Unix/Linux網絡服務器

掌握Unix/Linux平臺開發方式;

熟練使用系統調用;

熟練Unix/Linux內存管理,進程,線程調度;

熟悉網絡服務器開發方式,熟練編寫TCP,UCP網絡服務程序;

掌握同步/異步IO模型在網絡編程中的使用方式。

10.C++進階之數據庫開發

掌握SQL語言的實用技巧。Oracle,MySQL數據庫的使用方式。

如果妳能熟練掌握以上列出的技能,具備解決復雜問題和技術難點的能力,而且妳能獨立開發壹些比較復雜的功能模塊,那麽很榮幸地告訴妳,妳已經達到中級水平,薪資過萬對妳來說簡直是小菜壹碟。

11.C++標準參考

C++ reference

地址:/w/

C++ Coding Standard

地址:/Cpp/CppCodingStandard.html

Standard C++

地址:/

Draft C++ Standard: Contents

地址:http://eel.is/c++draft/

  • 上一篇:c編程語言................
  • 下一篇:新飛飛 按鍵精靈怎麽用
  • copyright 2024編程學習大全網