詳細解析如何才算精通的C++這門語言!

2021-01-07 鏈客區塊鏈技術社區

大家好,這裡是鏈客區塊鏈技術問答社區,鏈客,有問必答!

今天講一講C++這項技術,看看如何精通它!

精通C++是一個艱巨的任務。為什麼C++比別的語言難學這麼多?

結果C++為了不限制你的想法,於是也就變成了現在這個樣子——包含若干範式,大概有面向對象(靈活應用virtual繼承+shared_ptr可以達到java/C#的效果)模板(這裡分兩類,分別為type rich programming和meta programming,區別很大)函數式編程(如今有了lambda,配合<algorithm>文件,簡直無敵了)過程式但是難能可貴的是,這幾種東西在C++混在一起用也是多麼的自然。不過,這需要你花時間去掌控他。

那到底有沒有必要真的學到這個地步呢,我覺得跟你的領域是有關係的。譬如說我,基本上算是人格分裂的,因為:當我搞語言設計和編譯器的時候,我總是會傾向於創造各種小DSL來給自己用,用的都是模板(想想boost的spirit大概就明白我的意思了,雖然我不用它),儘量讓跟我有同樣背景的人一眼能看懂我代碼的意思。

當我做我那個GUI庫(www.gaclib.net)的時候,純粹是用OO和IoC那一套。 當我寫3D渲染程序的時候,我會變成一個為了性能不惜犧牲可讀性的人。當我是不同的我的時候,我當然只會用C++的一部分來完成我當前的這個任務。這好像是多重標準,但是實際上是由於項目本身的性質而定的。

到了這個時候你會覺得,C++真是一門好語言。當你需要為了你的項目放棄不同的部分的時候,C++都能幫你做到。當你需要不同的抽象層次需要不同的性能要求的是,C++還是能夠幫你做到。如果你用別的語言,你最終會發現那個語言只能做某幾類的項目。這是因為,C++能夠自由的讓你放棄某些部分,而別的語言會阻止你放棄某些部分。

為了達到這個層次,你必須進入一個無限接近於精通C++的狀態裡,這個時候你才能收放自如,不被C++社區的各種不同的價值觀所捆綁。倘若你的項目非常大,不同的部分有不同的特徵的時候(什麼,一個沒有遍布全世界的一兩千人寫了20年的程序能叫程序嗎?),就更加需要你有這種本事了。

說到這裡,大家大概都明白精通C++大概是個什麼感覺了吧——大丈夫能屈能伸。

相關焦點

  • 怎樣才算精通Python?
    如果大家在看完這篇文章之前,已經充分理解了我列出的各個知識點,那麼,我相信你已經算是精通Python了。如果不能,我希望這篇回答能讓你意識到自己Python知識還存在哪些不足,在之後的學習中,從哪些方面去改進。怎樣才算精通Python,這是一個非常有趣的問題。很少有人會說自己精通Python,因為,這年頭敢說精通的人都會被人摁在地上摩擦。
  • 精通多門語言,對你的大腦有什麼好處?
    精通多門語言,可以在實質上改變你大腦的結構和工作方式:Hablas espaol? Parlez-vous franais?你會說中文嗎?如果你能回答,「sí」, 「oui」或者「會」,或者看英文視頻無障礙,那麼說明你很可能精通,並可以使用多種語言。
  • 一個程式設計師怎樣才算精通Python?
    如果大家在看完我這篇回答之前,已經充分理解了我列出的各個知識點,那麼,我相信你已經算是精通Python了。如果不能,我希望這篇回答能讓你意識到自己Python知識還存在哪些不足,在之後的學習中,從哪些方面去改進。怎樣才算精通Python,這是一個非常有趣的問題。很少有人會說自己精通Python,因為,這年頭敢說精通的人都會被人摁在地上摩擦。
  • 學編程,怎麼算精通一門開發語言了呢?
    雖然大部分程式設計師或是學編程的也懂得要熟練掌握或是說精通一門開發語言,不過很多人都不是很清楚有什麼標誌意味著自己已經精通一門開發語言了。有的人就會按照在某一行工作,用了某種語言多少年了來評判自己對這門開發語言的掌握程度。
  • 九大程式語言優缺點第四期:c++
    上一期給大家介紹了C語言,理所應當的本期給大家了解下C語言的超集,c++那麼接下來給大家介紹主流程式語言:C++、JavaScript、C#、Ruby、PHP以及Objective-C,對於這幾種語言,大家都能看到由其打造的頂尖應用,我們一起來了解一下吧。
  • 精通C++還是寫不好程序?
    最近群裡有些同學問我,為什麼我覺得我精通C++了還是寫不出來程序?這其實是學習程序挺普遍的狀態。我自己也遇到過。首先,這個精通的意義不是特別明確。第一種:精通語法這種最常見,學半年左右精通一門語言的語法一般沒問題。但是只是精通了語法寫不出好程序。就好比你把字典整本記下來也寫不出好文章。學會語法不等於能寫出好程序。
  • 德國語言天才,精通68門語言,中文溜溜的!
    有一次他送給妻子一本波斯語詩集,他用拉丁文為她朗誦,雖然他妻子兩種語言都不懂。儘管如此他還是容易被理解的:這是他表達愛的方式,即將他最心愛的東西—妻子Amende和語言--結合起來。Emil Krebs去世前精通68門語言,據說共研究過111門語言和方言,他的曾侄子Eckhard Hoffmann如是說。11月15日,這位特殊天才誕辰150周年。
  • C語言,C++,C ,Java之間的關係
    C語言,C++,C#,Java,這幾種語言,應該說是當前最流行,也是最基礎的計算機語言。是不是有些人看著會頭大,大腦會不叫混亂,一個計算機怎麼會有那麼的的語言呢?看著就頭大。之後,為了方便理解,又出現了編匯語言---有英語單詞組成,這裡可以理解了,但是,編匯語言還是要轉換為計算機語言,這裡有專門的軟體將編匯語言轉為計算機語言。這個軟體我想大家應該猜到了,就是編譯器。裡面單詞與及一些語法和01010的代碼相對應,可以把編匯語言很好的翻譯成機器語言。
  • C 語言C++ 教程視頻編程入門到精通視頻課程
    千鋒教育 課程試聽 Linux紅帽認證RHCSA考試視頻教程網課培訓題庫零基礎手工服裝打版縫紉教程服裝裁剪視頻課布藝DIY手作服裝紙樣中醫正骨手法教程視頻李茂發達摩新醫蘇景峰龍氏王文麟整脊視頻倪海廈針灸大成人紀神農本草經天紀資料全套自學基礎中醫視頻教程崔國文奇門四柱八字命理風水易經崔國文奇門遁甲全集視頻全套教程C 語言
  • scratch/python/c++,小孩學編程學哪個好?
    初三學生溫鎧瑞被清華大學預錄取那麼,面對數百種程式語言,孩子要學編程,應該怎麼選擇呢?傳統編程建議學習c++或者python。如果目標就是奧賽,那建議學c++。c++是奧賽元老,而且會一直坐鎮下去,笑看其他語言上來又下去。關注本號也可以學習零基礎C++教程。c++效率高,資源佔用少,可以編寫底層的操作。比如windows系統等等。也有學習c++的同學自己鼓搗出一個作業系統。
  • 連夜整理了28頁C語言/C++常見面試題(含答案)
    C語言和C++相關的面試題,文末有PDF版詳細答案,有需要的小夥伴們可以自取,面試前必看必背。2 簡述#ifdef、#else、#endif和#ifndef的作用3 寫出int 、bool、 float、指針變量與 「零值」比較的if語句6 C 語言的關鍵字static和 C++ 的關鍵字static有什麼區別7 C 語言的malloc和 C++ 中的new有什麼區別11 一個參數可以既是const又是volatile嗎15 全局變量和局部變量有什麼區別?實怎麼實現的?
  • 連夜整理了68道C語言/C++常見面試題(含答案)
    C語言和C++相關的面試題,文末有PDF版詳細答案,有需要的小夥伴們可以自取,面試前必看必背。2 簡述#ifdef、#else、#endif和#ifndef的作用3 寫出int 、bool、 float、指針變量與 「零值」比較的if語句6 C 語言的關鍵字static和 C++ 的關鍵字static有什麼區別7 C 語言的malloc和 C++ 中的new有什麼區別11 一個參數可以既是const又是volatile嗎15 全局變量和局部變量有什麼區別?實怎麼實現的?
  • C 語言會比 C++ 快?
    meshoptimizer 使用了 C ++ 中的指針類型強制轉換和函數調用方式的強制轉換(例如int(v)),但 C 語言沒有這兩種強制轉化的方式,所以必須對代碼進行相應的調整。同樣,我們還遇到了一些其他的語法問題,但實際上在這一方面將代碼更改為 C 語言的版本並不難。
  • 學習C++,這13本書就夠了!
    本書單針對C++的學習,主要分為四大部分,以程式語言學習為主,涉及部分作業系統、計算機網絡、Linux開發的必讀書籍。有初學者入門必讀,也有適合高階段同學讀的書籍,大家可以選擇性閱讀!1、《c++語言的設計與演化》作者:[美]BjarneStroustrup推薦原因:C++的設計者關於C++語言的最主要著作之一,可以用來理解C++的設計思路 2、C++ primer作者:[美] Stanley B.
  • 10年老技術分享,關於語言的選擇與發展方向
    關於學習語言的選擇與發展方向。選一門適合你的基礎程式語言學會編程是程式設計師必備技能,但是程式語言太多,實際應用也不盡相同,作為新手建議大家首先選擇一門基礎程式語言熟練運用為好,這裡不是說基礎的就是差的但是沒有基礎那是啥都做不好的。給大家推薦幾種基礎語言以及以後的發展方向.
  • 老外精通十門外語 教你學語言七大原則
    新東方網>英語>英語學習>英語聽力>聽力視頻>演講視頻>正文老外精通十門外語 教你學語言七大原則 2013-04-25 10:26 來源:滬江 作者:
  • C/C++可變參數函數
    但在某些情況下希望函數的參數個數可以根據需要確定,因此c語言引入可變參數函數。這也是c功能強大的一個方面,其它某些語言,比如fortran就沒有這個功能。典型的可變參數函數的例子有大家熟悉的printf()、scanf()等。二、c/c++如何實現可變參數的函數?
  • 精通32門語言視頻走紅 歐盟翻譯官:最難還是中文
    近日,一段歐盟翻譯官精通32門語言視頻走紅,據了解,歐盟翻譯官Ioannis Ikonomou來自希臘,在20歲時就已經學會15種語言,後來進入歐盟工作後,又學了其他歐盟官方語言,到現在為止,他表示能說32種語言,他透露稱,他的學習方法沒有什么特別之處,最好的方式就是讓自己處在該語言的環境裡,並大膽地將學到的東西說出來。
  • c++之內存分配、命名空間、強制類型轉換學習總結
    一、C++動態內存分配:在學習c語言的時候,我們一般都是使用庫函數malloc()來進行內存的申請分配,然後使用庫函數free()來進行釋放申請到的內存;現在在c++裡面採用了另外一種內存申請的方法:c++中通過
  • C++ 的門門道道 | 技術頭條 - CSDN
    作者 | 我不想種地責編 | 郭芮C++是一門被廣泛使用的系統級程式語言,更是高性能後端標準開發語言;C++雖功能強大,靈活巧妙,但卻屬於易學難精的專家型語言,不僅新手難以駕馭,就是老司機也容易掉進各種陷阱。