C++編程這么學(xué)習(xí),0基礎(chǔ)入門(mén)也沒(méi)想的那么難嵌洼!

前言

  • 讀者定位是兩類人群:
    a.初學(xué)者案疲,即將入手 C++ 語(yǔ)言、不知道如何開(kāi)始麻养;
    b.已經(jīng)開(kāi)始學(xué)習(xí)C++許久了褐啡,卻進(jìn)度緩慢,抓不到精髓鳖昌,倍感迷茫备畦。
  • 本文不會(huì)深入到C++語(yǔ)言內(nèi)部挖掘技術(shù)點(diǎn)低飒。
  • 你本就是C++高手,開(kāi)發(fā)經(jīng)驗(yàn)豐富懂盐,可以對(duì)本文提一些建議褥赊。
  • 本文將結(jié)合小編自己的學(xué)習(xí)經(jīng)歷和經(jīng)驗(yàn),談一談 C++ 應(yīng)該如何學(xué)習(xí)莉恼。

【文章福利】: 小編推薦一個(gè)C語(yǔ)言/C++交流群:836880131拌喉!整理了一些個(gè)人覺(jué)得比較好的學(xué)習(xí)書(shū)籍、視頻資料共享在群文件里面俐银,有需要的可以自行添加~

為什么 C/C++尿背?

C++ 是一門(mén)編程語(yǔ)言,請(qǐng)注意它僅僅是一門(mén)編程語(yǔ)言捶惜。這句話的意思就是一旦有人在做語(yǔ)言好壞之爭(zhēng)的時(shí)候田藐,一笑而過(guò)即可。特定的語(yǔ)言只是用來(lái)在特定的領(lǐng)域解決特定的問(wèn)題吱七,僅此而已汽久,尤其是現(xiàn)在眾多語(yǔ)言紛飛的年代,這句話的正確性不容置疑陪捷。

在編程領(lǐng)域里回窘,每個(gè)人都會(huì)有他/她的入門(mén)語(yǔ)言,各持己見(jiàn)市袖。我個(gè)人認(rèn)為 C 語(yǔ)言是一個(gè)很不錯(cuò)的選擇啡直,語(yǔ)法簡(jiǎn)單,深度可深可淺苍碟,高級(jí)語(yǔ)言的鼻祖酒觅。很重要的一點(diǎn)是現(xiàn)今的各種編程語(yǔ)言,或多或少都是 C 語(yǔ)言的衍生品微峰,或者是衍生品的衍生品舷丹。語(yǔ)言相通,只要 C 語(yǔ)言學(xué)好了蜓肆,上手其他語(yǔ)言問(wèn)題不大颜凯。C 語(yǔ)言的靈魂在于指針,指針可以幫助你更好的理解內(nèi)存仗扬,理解操作系統(tǒng)的工作機(jī)理症概。

C++ 是一門(mén)爭(zhēng)議性語(yǔ)言,喜歡研究的人很多早芭,吐槽的(包括一些大神級(jí)的人物)的人也很多彼城。在 C/C++ 的時(shí)代(C/C++剛出道的時(shí)候),語(yǔ)言的可選性較少,所以 C++ 干了許多事情募壕,現(xiàn)在時(shí)代不一樣了调炬,正如我前面所謂語(yǔ)言紛飛,針對(duì)性語(yǔ)言眾多舱馅,程序員的選擇性也就多了(有很多的優(yōu)秀的語(yǔ)言可以去學(xué)缰泡,C#,java代嗤,php匀谣,python,ruby……)资溃,所以 C++ 不再是必須品。

在你開(kāi)始學(xué)習(xí)之前烈炭,請(qǐng)慎重考慮一下溶锭,為什么要學(xué)?如果考慮好了符隙,請(qǐng)繼續(xù)閱讀趴捅。

C++新手

選擇一本好書(shū)

如果你發(fā)現(xiàn)以“數(shù)字”命名的書(shū)籍,請(qǐng)扔掉E摺(21天學(xué)通C++拱绑?)
如果你發(fā)現(xiàn)以“通”字樣命名的書(shū)籍,請(qǐng)扔掉@鲂(零起點(diǎn)學(xué)通C++猎拨?C++從入門(mén)到精通?)
如果你發(fā)現(xiàn)把“Visual” 和 “C++” 聯(lián)系起來(lái)的 C++ 教程屠阻,請(qǐng)扔掉:焓 (太多了,不舉例了)
如果你發(fā)現(xiàn)“void main”作為實(shí)例的書(shū)籍国觉,請(qǐng)扔掉吧恃!
如果你發(fā)現(xiàn)“”作為實(shí)例的書(shū)籍,請(qǐng)扔掉麻诀!
……

有幾本書(shū)可以供你選擇:《C++ Primer Plus》,《C++ Primer》痕寓,《C++程序設(shè)計(jì)語(yǔ)言》

小編入門(mén)用的是《C++入門(mén)經(jīng)典》,繼而讀的是《C++ Primer》蝇闭。其實(shí)好書(shū)和差書(shū)很容易區(qū)分呻率,厚度和價(jià)位是一個(gè)很關(guān)鍵的點(diǎn),通常薄薄的丁眼,又便宜筷凤,書(shū)名卻非常霸氣的告訴你如何精通,那你果斷扔了,想都不要想藐守。

選擇一個(gè)好的IDE

請(qǐng)注意我強(qiáng)調(diào)的是IDE(集成開(kāi)發(fā)環(huán)境)挪丢,而不是套餐(GCC+VIM/EMACS+GDB+[linux]),對(duì)于一個(gè)初學(xué)者來(lái)說(shuō)卢厂,一定要抓住重點(diǎn)乾蓬。

初學(xué)者一定要相信這一點(diǎn),網(wǎng)上太多人吹噓學(xué) C++ 不應(yīng)該用 IDE 慎恒,就應(yīng)該直接 文本編輯器+GCC 用 GDB 調(diào)試任内,進(jìn)而言語(yǔ)鄙視 IDE 。我不知道你抱著什么心態(tài)融柬,我只想說(shuō)你入門(mén)是那樣入門(mén)的嗎死嗦?當(dāng)時(shí)有沒(méi)有 IDE ?你了解 IDE 嗎粒氧?你公司用什么開(kāi)發(fā)越除?

對(duì)于一個(gè)入門(mén)新手,一個(gè)人性化的調(diào)試環(huán)境是必須的外盯。當(dāng)然摘盆,作為一個(gè) C++ 程序員的話,GCC/GDB 是必須要去了解的饱苟,linux 也是必須要會(huì)的孩擂。

C++入門(mén)(停留在表面)

參考標(biāo)準(zhǔn):熟練掌握 C++ 語(yǔ)法結(jié)構(gòu),了解 C++ 主要模塊箱熬,技術(shù)難點(diǎn)类垦。大部分書(shū)上可以找到的知識(shí)點(diǎn)。

學(xué)習(xí) C++ 要不要學(xué)習(xí) C 坦弟?

作為這樣的一篇文章护锤,這個(gè)探討幾乎是必須要做的。

我的觀點(diǎn)很明確酿傍,要學(xué)烙懦!

因?yàn)槲蚁葘W(xué) C 語(yǔ)言,后學(xué)的 C++ 的赤炒,而且學(xué)習(xí)使用過(guò)程中無(wú)數(shù)次穿插的相互學(xué)習(xí)氯析。我的程序中從來(lái)沒(méi)有刻意的區(qū)分這是 C 還是 C++,我把握的標(biāo)準(zhǔn)是怎么樣方便怎么來(lái)莺褒。

就好像文件讀寫(xiě)我從來(lái)都不用 C++ 的文件流掩缓,因?yàn)槲伊?xí)慣了 C 語(yǔ)言的 fread、fwrite遵岩、 fopen你辣、 fseek巡通、 ftell 等等。

我是站在語(yǔ)言的語(yǔ)法和庫(kù)的角度來(lái)說(shuō)“要學(xué)”的舍哄。如果你要學(xué)面向?qū)ο蟮脑捬缌梗蔷蜎](méi)必要學(xué) C 了,好像也沒(méi)有學(xué) C++ 的必要了表悬,你可以選擇一個(gè)純面向?qū)ο蟮恼Z(yǔ)言去學(xué)面向?qū)ο筘M不更好弥锄。

總結(jié),以我的個(gè)人經(jīng)歷來(lái)說(shuō)蟆沫,學(xué) C++ 可以先學(xué)習(xí) C 語(yǔ)言(觀點(diǎn)已明確籽暇,探討結(jié)束!)饭庞。

要了解哪些東西呢戒悠?總結(jié)是兩點(diǎn):語(yǔ)法和庫(kù)。所有的語(yǔ)言幾乎都是一樣的舟山。

  • 語(yǔ)法[基本類型救崔、標(biāo)準(zhǔn)庫(kù)類型、數(shù)組和指針捏顺、表達(dá)式、語(yǔ)句纬黎、函數(shù)等]
  • STL[容器幅骄,算法]
  • 模板與泛型編程
  • 類與面向?qū)ο?/li>

語(yǔ)法熟練的是必須的;熟練使用 STL 編程本今,面向?qū)ο笏枷氩皇且惶靸商炀涂梢杂械牟鹱枰粩嗟臍v練和實(shí)戰(zhàn)才能培養(yǎng)出來(lái)的;面向?qū)ο笤贑++中的實(shí)現(xiàn)方式一定要熟(繼承冠息,派生挪凑,虛函數(shù)等);模板的實(shí)參演繹要搞清楚逛艰。

怎么學(xué)習(xí)C語(yǔ)言

希望我整理的 C語(yǔ)言的學(xué)習(xí)路線躏碳,能對(duì)你有幫助!

數(shù)據(jù)類型散怖、變量菇绵、內(nèi)存布局、指針基礎(chǔ)镇眷;
字符串咬最、一維數(shù)組、二維數(shù)組欠动;
一級(jí)指針永乌,二級(jí)指針,三級(jí)指針,N級(jí)指針概念翅雏,指針數(shù)組和數(shù)組指針圈驼;
結(jié)構(gòu)體、文件的使用枚荣;
動(dòng)態(tài)庫(kù)的封裝和設(shè)計(jì)碗脊;
函數(shù)指針回調(diào)函數(shù)。

配套書(shū)籍:

如何實(shí)現(xiàn)入門(mén)橄妆?

  • 看書(shū)衙伶。《C++ primer》害碾,《C++標(biāo)準(zhǔn)程序庫(kù)》矢劲,《C++ template》
  • 多思考,多寫(xiě)小程序慌随。

C++進(jìn)階(技術(shù)研究)

參考標(biāo)準(zhǔn):內(nèi)部機(jī)理芬沉,奇淫技巧

  1. 深入C++內(nèi)部,探究實(shí)現(xiàn)的機(jī)理[為什么模板不支持分離編譯阁猜?虛函數(shù)/多重繼承是怎么實(shí)現(xiàn)的丸逸?類型轉(zhuǎn)換做了那些事情?異常處理剃袍?等]
  2. STL源碼學(xué)習(xí)[學(xué)習(xí)別人的設(shè)計(jì)方法黄刚?為什么STL效率高(為達(dá)效率,無(wú)所不用其極)民效?學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法憔维??jī)?nèi)存池?RTTI畏邢?等]
  3. 內(nèi)存[理解指針運(yùn)算业扒??jī)?nèi)存對(duì)齊?類的內(nèi)存布局舒萎?new/delete 和 malloc/delete的區(qū)別程储?函數(shù)變參的實(shí)現(xiàn)?存儲(chǔ)方式臂寝?智能指針虱肄?等]
  4. 編譯器在編譯劫樟,鏈接的過(guò)程中偷偷的做了那些事情藤抡。[如何分析編譯器的提示?鏈接錯(cuò)誤代表可能出現(xiàn)哪些問(wèn)題撤卢?等]
  5. 跟上C++庫(kù)的潮流素征,研究新標(biāo)準(zhǔn)集嵌。

如何實(shí)現(xiàn)進(jìn)階萝挤?

  • 看書(shū)。Effective 系列書(shū)籍根欧,《STL源碼剖析》怜珍,《C++標(biāo)準(zhǔn)程序庫(kù)》,《C++沉思錄》凤粗,《高質(zhì)量C/C++編程》酥泛,《C++編程思想》,《深度探索C++對(duì)象模型》等嫌拣。
  • 寫(xiě)軟件柔袁,遇到問(wèn)題之后自己折騰,自己探索异逐。
  • 逛社區(qū)捶索,回答別人的問(wèn)題。
  • 多看看別人的博客灰瞻。
  • 結(jié)交自己的技術(shù)圈子腥例。

最后給大家?guī)讉€(gè)忠告來(lái)結(jié)束本文吧:

  • 多交流:不管你的技術(shù)多么硬,你都不可能一個(gè)人做完所有的事情酝润,你要學(xué)會(huì)與別人合作燎竖,與別人交流。交流過(guò)程中要销,要注意交流技巧底瓣。學(xué)會(huì)尊重別人,但要不亢不卑蕉陋。

  • 多動(dòng)手:熟能生巧,這是萬(wàn)能之理拨扶。我們干的是技術(shù)活凳鬓,最能證明自己能力的就是干!不是扯淡患民!

  • 多思考:不要做編碼機(jī)器缩举。

  • 多總結(jié):相同的問(wèn)題不可能只出現(xiàn)一次,尤其是在我們這個(gè)行業(yè)匹颤〗龊ⅲ總結(jié)是為了你在以后更快的解決類似的問(wèn)題,提高工作效率印蓖。

能說(shuō)的還有很多辽慕,讓博客待續(xù)……

文章福利

對(duì)于自己找不到視頻、書(shū)籍資源的讀者赦肃,可以加小編的C語(yǔ)言/C++交流群:836880131溅蛉!整理了一些個(gè)人覺(jué)得比較好的學(xué)習(xí)書(shū)籍公浪、視頻資料共享在群文件里面,需要的可以自行添加下載即可~

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末船侧,一起剝皮案震驚了整個(gè)濱河市欠气,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌镜撩,老刑警劉巖预柒,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異袁梗,居然都是意外死亡宜鸯,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)围段,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)顾翼,“玉大人,你說(shuō)我怎么就攤上這事奈泪∈拭常” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵涝桅,是天一觀的道長(zhǎng)拜姿。 經(jīng)常有香客問(wèn)我,道長(zhǎng)冯遂,這世上最難降的妖魔是什么蕊肥? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮蛤肌,結(jié)果婚禮上壁却,老公的妹妹穿的比我還像新娘。我一直安慰自己裸准,他們只是感情好展东,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著炒俱,像睡著了一般盐肃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上权悟,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天砸王,我揣著相機(jī)與錄音,去河邊找鬼峦阁。 笑死谦铃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的榔昔。 我是一名探鬼主播荷辕,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼凿跳,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了疮方?” 一聲冷哼從身側(cè)響起控嗜,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎骡显,沒(méi)想到半個(gè)月后疆栏,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惫谤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年壁顶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片溜歪。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡若专,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蝴猪,到底是詐尸還是另有隱情调衰,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布自阱,位于F島的核電站嚎莉,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏沛豌。R本人自食惡果不足惜趋箩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望加派。 院中可真熱鬧叫确,春花似錦、人聲如沸芍锦。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)醉旦。三九已至,卻和暖如春桨啃,著一層夾襖步出監(jiān)牢的瞬間车胡,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工照瘾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留匈棘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓析命,卻偏偏與公主長(zhǎng)得像主卫,于是被迫代替她去往敵國(guó)和親逃默。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345