首頁>Club>
4
回覆列表
  • 1 # 使用者5154813478955

    精通C++是一個艱鉅的任務。為什麼C++比別的語言難學這麼多?其實這基本上是因為C++他爹Bjarne Stroustrup說過的一句話“我特別討厭語言的設計者把自己的喜好強加給使用者”(看向go)。結果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++大概是個什麼感覺了吧——大丈夫能屈能伸

  • 中秋節和大豐收的關聯?
  • 怎麼讓舊傢俱發亮?