1. 程式人生 > >C++學習書籍順序推薦(二)----如何學好C++

C++學習書籍順序推薦(二)----如何學好C++

以下內容轉載自網路,來源不詳!!

一些同學問我,,我沒有別的辦法給你們,唯一的辦法就是讀書,讀大量的書,



就可以解決。要把C++作為日常語言,而不是一種程式語言,這樣就好辦了。


有人又要問我,那麼我應該讀什麼書才好?沒有時間怎麼辦?


我只能對你們說,沒時間的話,就別學C++了,做你們喜歡做的事。生活中沒有
C++,也同樣美好。


如果你準備學,一定要學好,那麼我開個書單,應該問題不是甚大。


首先肯定要讀一讀Bjarne Stroustrup的The Design and Evolution of C++,瞭解
一下這個語言的歷史。接下來就可以看別的書了,但要不停地回頭看這本書,看到
你不斷地學到的新技術是怎麼樣一點點地被
接納到這個語言中去的。


第一本書因人而異,基礎好一些的,可以看Stanley B. Lippman的,這
本書非常地巨大,你打星號的部分可以不要看。基礎不太好的,可以看Stanley B.
Lippman的Essential C++,這本書份量要輕得多,不過四個C++的範型都講了,而
且講得非常清楚。


第二本應該停止技術層面的東西,靜下心來看看Pike和Kernighan的The Practice
of Programming,好好地整理一下,在程式設計中應該有哪些注意的事項。這本
非常薄的booklet,可以說是程式設計師必讀的指南。'''pl


第三本書,就應該是Bruce Eckel寫的、候捷譯的Thinking in C++,這本書每過
半年我就要重讀一遍。可以說每一章都是寫得發人深省的,這本書讓我感覺到了
技術運用的非常高的境界,但是語言非常平實,只要認真地讀,即使基礎不行,
也一定可以懂。我在教課的時候,就是用這本書(面對的學生是零基礎)。 


要更上一層的話,就要慢一步,先要把握C++設計習慣的良好。這是Scott
Meyers的Effective C++和More Effective C++帶給我們的無盡收益。我More
Effective C++買不起,只好花了10塊錢復印裝訂了一本"線裝本",看起來像葵花
寶典(;-))。這兩本書是真正的經典,作者對C++的純熟,使得語言的風格讀起來
簡直是如飴甘甜,就像他站在對面在講課。我手中有這兩本書的原版CD,可以從以
下URL下載:
http://go.gaobo.org/fwlink/?LinkID=25


如果你已經深刻地理解了和More Effective C++,那你可以發現,
你在眾人中已經是雞群之鶴。可以指導專案運作了,可以編寫一切你想做的程式了,
可以指出別人看起來不錯的程式碼的大小問題了。如果你能一眼看出有人的程式碼是對
應於"條款27"或"條款M6",那你可真是讓本人刮目了。


我已經講了,如果要寫程式,EC++和MEC++的境界已經足以使你自如應付,可是如
果你還不滿足,想關注一些理論層面的問題,或是想看看實現的程式碼,你就不應該
錯過這幾本好極了的書。我是說Herb Sutter的Exceptional C++和More
Exceptional C++,這兩本書的難度是非常大的,我對每一條的閱讀筆記都是十多
頁。特別是泛型程式設計的部分,這兩本書旁徵博引,極盡深入探討之能事,每每
看懂一條,都抹汗一次,大感酣暢淋漓;還有侯捷的 STL原始碼剖析 ,以實際的
例子一點點地講解一個STL是怎麼樣實現的,我是剛開始讀,不發表評論;而
Stanley B. Lippman,Cfront的實現者之一,執筆寫出Inside the C++ Object
Model,我只有一個字,就是基本帥呆了。我從中瞭解了無數的編譯器解釋原始碼
的細節,以及記憶體分配的細節,呵呵,這些都知道了,我還怕什麼呢?最近得到
了另一Cfront實現者、C++標準委員會Koenig的 C++沉思錄,看起來非常不錯,這
裡也推薦給大家,但我也沒看完,亦無發言權。 


最後最後,你們,未來的C++理論家們,可要記住,Bjarne Stroustrup的The C++ 
Programming Language無論如何也應該讀個四五遍!這是一切C++的書本的源泉。
如果還覺得不夠,就向C++標準委員會訂購一本C++標準。 


一切中國大陸作者的書,一概不要看(包括我的)。一切VC++或講特定的編譯器的
書,一概不要看。如果需要補C語言的課,買一本非常小的K&R的The C
Programming Language足矣,其它的書一概不要看。不要先學C,再學C++,而要直
接學C++。你不是先學古文,再學白話的,對不對?所以相信我,直接來更容易。

相關推薦

C++學習書籍順序推薦----如何學好C++

以下內容轉載自網路,來源不詳!! 一些同學問我,,我沒有別的辦法給你們,唯一的辦法就是讀書,讀大量的書, 就可以解決。要把C++作為日常語言,而不是一種程式語言,這樣就好辦了。 有人又要問我,那麼我應該讀什麼書才好?沒有時間怎麼辦? 我只能對你們說,沒時間的話,就別學C

C++學習筆記——建構函式

委託建構函式:使用類的其他建構函式執行初始化過程 Clock(int newH, int newM, int newS): hour(newH), minute(newM), second(newS){ } Clock:Clock(0,0,0){} //無參建構函式呼叫有參建構函式,將預設初始化

C++ Primer之順序容器:迭代器

begin、end、first、last、size_type、iterator、const_iterator、value_type、reference、const_reference、cbegin、send、rbegin、rend。 這裡begin和first

Windows Service 學習系列C# windows服務:安裝、解除安裝、啟動和停止Windows Service

一、通過CMD安裝、解除安裝、啟動、停止Windows Service     方法一   1.以管理員身份執行cmd   2.安裝windows服務       切換cd C:\Windows\Microsoft.NET\Framework\v4.0.30319(InstallUtil.e

C語言學習_查詢演算法

3 分塊查詢 演算法思想:將待查的元素均勻的分成塊,塊間按大小順序排序,塊內不排序。 具體的,設待查元素有15 個,將其按關鍵字大小分成3塊,這15個數的排列是一個有序序列,也可以給出無序序列,但也是必須得滿足分在第一塊中的任意元素小於第二塊中的所有數,第二塊中的任意元素

C++ ---- 順序容器

2 順序容器操作 除了array外,所有標準庫容器都提供靈活的記憶體管理。 插入元素  注意: 1. 其中 c.insert(p,b,e) 中,迭代器 b 和 e 不能指向c中元素。 2. 向一個vector 或 string 新增元素可能引起整個物件儲存空間

XLua 學習之路C#訪問Lua

       這裡指的是C#主動發起對Lua資料結構的訪問。從Lua支援的資料型別來講,C#獲取Lua元素主要分為:基本資料型別(number,bool,string),複雜的資料型別(table),函式(function)。        本次測試的待獲取的L

深度學習數學基礎介紹概率與數理統計

特征 數字特征 抽樣分布 第5章 最大 中心 3.4 獨立 知識 第1章 隨機事件與概率§1.1 隨機事件§1.2 隨機事件的概率§1.3 古典概型與幾何概型§1.4 條件概率§1.5 事件的獨立性 第2章 隨機變量的分布與數字特征§2.1 隨機變量及其分布§2.2 隨機變

小白學習之Code First

文件中 build 默認 dbm pcre student 技術分享 使用 類名 Code First約定: 註:EDMX模板 (SSDL:存儲模型=>數據庫表 ,CSDL:概念模型=>實體,C-S模型=>存儲和概念模型之間的映射關系) System.Da

C語言C語言概述

感覺 用途 計算機 一行 可用 讓其 pan 復合語句 sso 學習筆記:  運算符  函數 一個簡單的C語言程序 整型變量 換行符 註釋 關鍵字 概述:C語言程序是什麽樣

第二十天學習:模塊

python 1 file warning __name__ filename cnblogs open() print 狀態 1. logging (1) 日誌打印到屏幕: import logging logging.debug(‘this is debug m

C#基礎之參數 數組參數、可選參數與命名參數

編譯器 line 示例 報錯 一個 傳遞 for 介紹 public   這次介紹的三個參數皆屬於語法糖。   4.數組參數    聲明方法時,在形參前加params關鍵字。簡化了參數調用,增加了可讀性。   用法:   (1)在參數為數組時使用   (2)每個方法只能有一

輕松入門機器學習之概念總結

消息 目的 作者 固定 erp 效率 dev 常用 度量 歡迎大家前往雲加社區,獲取更多騰訊海量技術實踐幹貨哦~ 作者:許敏 接上篇:機器學習概念總結筆記(一) 8)邏輯回歸 logistic回歸又稱logistic回歸分析,是一種廣義的線性回歸分析模型,常用於數據挖掘

機器學習算法整理邏輯回歸 python實現

alt bubuko 邏輯 style res n) regress com png 邏輯回歸(Logistic regression) 機器學習算法整理(二)邏輯回歸 python實現

ng機器學習視頻筆記 ——梯度下降算法解釋以及求解θ

表示 大於 解釋 圖片 bubuko eight 閾值 自己 極小值 ng機器學習視頻筆記(二) ——梯度下降算法解釋以及求解θ (轉載請附上本文鏈接——linhxx) 一、解釋梯度算法 梯度算法公式以及簡化的代價函數圖,如上圖所示。

UNP學習第五章

igp 編程 函數名 gpo atl clu 運行 poll 發生 一、POSIX信號處理 信號:告知某進程發生了某個事件的通知(軟中斷),通常是異步的。 信號可以:由進程發給另一個進程,由內核發給某個進程。 設置信號處理辦法,有三個選擇: 1.寫一個函數,在信號發生時

UNP學習第六章

默認 clas 套接字 post 討論 默認值 第六章 數據 當前 一、描述符就緒條件 對於引起select返回套接字“就緒”的條件我們必須討論得更明確: (1)滿足一下塞個條件中的仍和一個時,一個套接字準備好讀。 a)該套接字接收緩沖區中的數據字節數不大於等於套接字接收緩

Java 系列之spring學習--依賴註入

ssp app odin throw 函數 ans 圖片 .com 配置 一、依賴註入的三種方式   接口註入,set註入,構造函數註入 二、構造函數註入   2.1、測試類 package test; public class test01 { public St

JavaWeb學習之Hibernate框架

utils xtend auto etl SQ dial begin 可選 oct hibernateAPI詳解 Configuration 創建 加載主配置 創建sessionFactory

C語言數據結構

span 有關 sel [] lec 原則 存儲 情況 規格 算法和算法的衡量 一、算法 算法是為了解決某類問題而規定的一個有限長的操作序列。一個算法必須滿足以下五個重要特性: 1.有窮性 對於任意一組合法輸入值,在執行又窮步驟之後一定能結束,即:算法中的每個步驟都能在