想學習C++,應該怎麼開始入手?

不知道是否需要其他語言的基礎?有什麼書可以推薦一下。


沒有其他語言的基礎也是可以的。

C++是非常難掌握的一門語言,想學好,需要花很大的精力。

下面說下我自己對如何學C++的一點看法。

首先,可以找一本稍微薄一點的書入門,經典的有《Essential C++》。掌握基本的語法和概念,對C++有一個初步的認識。

然後,就可以看《C++ Primer》了。這本書強烈推薦。這本書有點厚,需要耐心。一定要認真讀完,並且盡量實現一些例子,自己動手去寫,去debug。這本書吃透C++的基礎基本掌握了。編寫常用的程序不是問題。

接下來可以進階了。面向對象程序設計,侯捷翻譯的《深度探索C++對象模型》必讀,這本書講的是底層編譯器C++面向對象 的實現原理,繼承、虛函數等等的機制。這本書比較有難度,個人認為需要至少讀2遍。然後是《Effective C++》,講了55條準則,提高C++編程質量的。如果有一定的C++開發經驗,讀起來更有感觸。關於泛型編程,可以先讀《C++標準程序庫》,對STL有個基本認識,學會使用,然後可以去研究stl源碼,侯捷的《STL源碼剖析》值得推薦。源碼面前,了無秘密。閱讀經典源碼往往能獲得很大的收穫。

如果有精力,可以再學學boost庫,號稱准標準。

說到底,學語言的最好方法還是寫程序,多寫,多思考~


不需要其他語言基礎,推薦入門書籍《Accelerated C++》,C++之父Bjarne Stroustrupce曾經這樣評價它「與這本書相比,其他任何C++教程都顯得有些過時」。

這本書的作者也是《C++沉思錄》的作者,作者認為「C++是相當複雜的,不過你並不需要懂C++的全部知識後才能編程,你只需要懂一部分就可以開始編程了」。本書從C++基礎講起,給你最純正的C++用法,單刀直入C++最核心部分,先通過一些實例展開,然後再說明其語法。而一些從C繼承的東西放在附錄,講的不是很細,不過C++初學者不需要太多C的知識,當然,要成為C++高手還是需要有紮實的C知識的。

本書很好讀懂,除了第13和14章,如果這兩章你讀不懂的話可以先放下,因為不讀這兩章你已經可以使用C++編程。不過,如果你跳過了這兩章的話,過一段時候你一定要回過頭來看,這兩章會讓你有醍醐灌頂的感覺。

這本書使用的是C++ 98標準,當時我學習C++時用VC++ 6.0編譯器,結果大部分代碼都需要改動很大才能運行,所以就沒有怎麼實踐。去年重讀此書,我用Xcode 4.5的Clang編譯器就暢通無阻了。

至於很多人推薦的《C++ Primer》,我認為並不適合入門,有些難,講述太多語法細節,而不是馬上教你如何運用你學到的知識編程。如果要C++進階閱讀我更推薦C++之父的《C++程序設計語言》。


推薦北京郵電大學軟體學院崔毅東老師的 C++程序設計入門(上)C++程序設計入門(上) 崔老師幽默風趣,跟他學習非常有意思~


《C++primer》 這本書是不錯。但是要稍微有一點點的基礎。。看起來才沒那麼痛苦。

如果是 0 基礎。從來沒學過的。。那麼 還是看 譚浩強的 C++程序設計吧。。雖然很多人都說這本書垃圾。但是在0基礎的書里。。實在找不到比他更好的書了。。。

看完上面2本。。看windows核心編程。C++標準庫。STL源碼解析。深入淺出MFC(這個書可以以後看)。TCP/UDP網路編程,然後在看看Effective C++ 還有一本叫 more Effective C++ ,到這裡,如果上面的書你都看完了。而且是非常非常的精通了。那麼基礎語法部分,基本就沒問題了,然後在看有個叫嚴什麼的寫的數據結構,C++的數據結構應該是高級語言當中最難。但是也是最牛逼的!所以一定要學數據結構! 精通數據結構之後。可以看深度探索C++對象模型。這個是為你的代碼設計提升內功的書。最後如果你還有心情研究或者想做的更好。。那麼看看C++提高效率編程的書(名字忘記了。但是很重要。。C++以速度效率出名。。如果你寫的程序和JAVA或者C#一樣的效率。。那麼還學C++幹什麼。。。)。。最後可以選修boost庫。看看這個本。學學這個庫。

以上基本都是最經典的書。看完。。不能說明什麼。一定要看精通了。不停的寫程序去實踐。去了解真相。。那麼上面的書和知識你都精通了。那麼恭喜你!C++的水平應該到中等水平。

也可以說C++的語法,基礎等。基本都沒什麼問題了。


推薦C++之父寫的書:C++程序設計原理與實踐 (豆瓣)


C++就是一門基礎語言,可以直接學習 一般大學計算機相關專業一進去剛學的專業課程就是C語言和 C++

如果題主要學C++ 的話 不建議看書 建議直接看視頻教程 因為現在的書上的東西一般比較新的技術都是寫出來一兩年以後才出版的 知識相對比較老 而且看書理解起來要困難些

視頻教程的話,可以看這套《C++視頻教程》 個人覺得比較新 比較全


不想推薦各種參考書。

對於如何學習編程語言一類的問題,只想 建議一點。

首先了解想要學習語言的基本語法,然後根據不同的需求動手編寫。

例如各種小工具。

只有有了自己的編程思想,存在的問題才開始暴露出來,而不是一味的對照參考書機械的模仿。


初學者的話,如果沒有任何基礎,建議可以看視頻教程!畢竟看書對於什麼都不知道的初學者很吃力!視頻傳送門:傳智播客C++就業班培訓視頻


我也正在開始學,一頭霧水


如果有一點C的基礎是挺好的,但是沒有的話也沒關係,因為C和C++還是有很大區別的,基本上C是包含在C++裡面的,而且C是面向過程的,C++是面向對象的,如果硬要把C的東西搬到C++裡面,可能還會產生誤導。

推薦你去看《C++primer》,這本書可以說是這個領域的權威,目前出到的第五版正好也基於C++11標準進行了內容更新,比起前四版來說幾乎是徹底的更新,如果你不習慣看英文版的話,可以稍微等等,這本書的中文版將不超過一個月就要上市了,可以算是不容置疑的首選教材。


霸王硬上弓,遇到問題Google,看書看不會的。


推薦閱讀:

如何挑選一門計算機語言呢?
哪些編程語言有 C/C++ 的效率,又有 Python 的簡潔語法和極高的生產力?
程序員為什麼會喜歡一些語言,討厭一些語言?
怎樣理解Haskell中的High Order Function?

TAG:學習 | 編程語言 | C |