標籤:

會C語言,如何學好C++?

我大學時學習了C語言,計算機二級和三級都考過了。C語言基礎應該還可以。現在需要自學下C++,想請問各位大神,有沒有什麼好的視頻教程推薦呢?太經典的書就不需要推薦了。因為我人在國外~


先把C忘掉,就能學好C++。


不要看任何中文材料。

不要看任何中文材料。

不要看任何中文材料。

至於C,忘得越乾淨越好。你要是學的是中國大學裡的C,不忘掉反而有害。

不要看書。

自己實現一個標準的std::vector。

不知道怎麼寫就看標準庫怎麼寫的。

不知道標準庫寫的什麼意思就查http://cppreference.com。

http://cppreference.com看不懂就看standard。

standard看不懂就去so上面問,注意顯示你已經做過功課了。

專心全職累計寫1個月(可以不連續),把個vector寫出來。

下一步寫std::shared_ptr。用虛函數。

這兩個寫完你工作的C++部分就夠了。工作中用到的那些pattern(譬如oop)一點就透。

如果工作不用,那你學了幹嘛?

我不覺得這很簡單,但我覺得這是最有效的學習方式。


C語言基礎應該還可以——代碼量多少/


c++ primer 的最新版,其中撿幾章以前沒見過的內容讀讀的就可以,然後你就入門了C++的語法階段。然後再是看標準庫,常用的標準庫在c++ primer中都有介紹,額外的直接到網站上看吧,cppreference就挺不錯的。了解一下有哪些標準庫,然後以後需要用的時候再回來看看就好。

另外」太經典的書就不需要推薦了「讓我很難做啊。。。。

記住:C++是一種披著C語言皮的新語言。


把C++當一門新語言就好了,先看《C++編程思想》,之後再看《effective C++》 和 《more effective C++》,全部看完,應該就差不多了。


c++比c多了2個+,一個是class, 一個是template。

扒掉這2個+,剩下的就是c。

同樣,Objective-C,扒掉了類、類目、代理,還是c。

另外別扯什麼思想,有內置語法支持的客觀基礎才能讓該語言成為某些思想的載體,語法糖能大幅度降低實現這些思想的成本。

語言只是工具,千萬別覺得難


我也是現在自學C++。

話說平時用彙編多,C用得少,C基礎個人感覺還湊合,但是以後想轉方向,於是入了C++的坑。

當然C++primer 必學沒的說吧,該敲常式敲常式,該敲習題敲習題,沒事我就去找點小遊戲的源碼看看,印證下學到的東西,能夠有想法修改下啦自然很贊不是?

當然,除了幾年前掃過一遍essential c++之外,到目前我才看了c++ primer剛好20天,當然還沒看完……

賣油翁不是說過嘛,「無他,唯手熟爾」,多想想多練練,語言是術而不是道,用點心總能夠掌握且能夠很好掌握的。

樓主加油↖(^ω^)↗


接受Linus洗腦,你就不想學這門語言了


其實國家計算機然並卵~,好好敲代碼吧,考軟考比那個強~


從頭學起


in fact,保持一顆想學好C艹的心,不管是上任何C艹學習網站,你都能學會。


都說這個世界上最難的編程語言就是C++了。你千萬不要認為自己幾天就可以學好C++,C++的學習曲線是相當難學的,我都一度懷疑C++並不是一門成熟的編程語言,因為太容易犯錯了。所以,在學習的過程中你需要細心而耐心。

深入理解C++的原理,比如,你去想為什麼要有拷貝構造函數?為什麼要有初始化列表嗎?為什麼要有template,為什麼要有RTTI?去通透的理解為什麼C++要設計成這樣?

多看書,下面這些書籍都是你學習C++的必經之路。

  • 《C++ Primer》,這本初級讀本可能讓會你啃得很痛苦,所有的語言的特性和為什麼都在裡面了,好好讀讀。當然由C++之父寫的《C++程序設計語言》也不錯。兩本看一本就好了(我看的是前者)。
  • 了解C++的語法僅僅是萬里長征的第一步,你還需要看看《Effective C++》和《More Effective C++》這兩本書並不厚,但我從02年就一直看到現在,每次讀我都有新的體會,這兩本書太經典了。如果你對C語言不熟,這兩本書會讓你回去補C語言的課。
  • Think in C++同樣是另一本經典之極的書,學c++必讀,但是中文版的翻譯的很不好,所以還是去讀英文版的吧。
  • 《C++沉思錄》同樣非常值得一讀,這裡教的不是編程,而是思考的方法,這是相當珍貴的。
  • 《Exceptional C++》和《More Exceptional C++》讓你看看各種問題的解決方法和一些常見的經典錯誤。
  • 《Advanced C++》和《Modern C++》可以讓你知道C++各種神奇的用法。
  • 《泛型編程與STL》是把C++實踐到了極致的東西。很強大。STL——神一樣的模板庫(容器,演算法和函數對象),不得不服。《深入探索C++對象模型》讓你了解編譯器下的C++是什麼樣的,讓你了解C++的性能並不差。這個對於C++的程序員太關鍵了。我以前寫過的《C++虛函數表解析》還有《C++對象內存布局》屬於這個範疇。


什麼從頭學起,這種說法是不對的。如果你c語言基礎紮實,比較推薦的方式是閱讀《嘗試探索c++對象模型》搞清楚c++怎麼實現的,c++的核心依然是c,只不過編譯器做了比較多的自動化生成。理解透繼承多態介面(interface),理解模板的本質。說句大實在話,c++的本質就是c!!!!!!這點我不想再強調了,希望某些人不要誤人子弟。還有就是盡量搞明白c98 c++0x c++11 c++14這些規範發展過程。多了沒什麼說的了。


推薦閱讀:

C++ 編譯時會把標準庫里所有的函數都編譯嗎?還是其他的實現方式?如果全部編譯不是太費時間了?
如何從只會 C++ 語法的水平到達完成項目編寫軟體的水平?
這段c++代碼存在內存泄露的可能嗎?
如何格式化代碼能夠將類成員/函數的名字對齊?
請問這個程序為什麼會死在18,19行?

TAG:C |