Effective C++ 讓自己習慣C++

Effective C++ 讓自己習慣C++主要包含4個條款:

  1. 視C++為一個語言的聯邦
  2. 儘量以const,enum,inline替換#define
  3. 儘可能使用const
  4. 確定對象被使用前已先被初始化
Effective C++ 讓自己習慣C++

記住這四個條款

視C++為一個語言聯邦

把C++當作一個語言的聯邦,是有其歷史原因的。首先C++是從大名鼎鼎的C的基礎上發展出來的,最初的英文名稱就是C with Classes。後來,這個語言逐漸成熟,添加了更多的編程語言特性,今天的C++是多重範型編程語言,一個同時支持過程形式(procedural),面向對象形式(object-oriented),函數形式(functional), 泛型形式(generic),元編程形式(meta_programming)的語言。由此可見C++是編程語言中的多麼強大的一種存在。所以在公司裡,對一個C++程序員的培養週期一般至少要一年以上,才能有穩定可靠的產出,因此現在的C++程序員是比較難招的。閒話少說,步入正題。

既然是語言的聯邦,那就有必要進行分類,這個聯邦主要由以下四部分組成:

C

    • 因為C++起初就是從C發展而來的,所以自然包含了C的內容,這部分主要是C語言的語法形式,主要是面向過程的編程形式,並不包含面向對象的部分,模板,異常,重載等等。。。

Object-Oriented C++

    • 這部分是C with Classes所訴求的,也是大部分C++程序員需要掌握的最核心的部分。這部分主要包含類(class), 封裝(encapsulation), 繼承(inheritance), 多態(polymorphism),virtual函數(動態綁定)。。。。如果你對提到的這些名詞,概念不是太理解,建議還是找一本C++語言基礎教程,熟悉下基本概念,建議以經典的 C++Primer 入手。

Template C++

    • 這個是C++的泛型編程部分,是後續學習和使用STL的不可或缺的內容。該部分是很多C++程序員,同樣也是本大猿經驗最少的地方。說到泛型編程,主要要區分一個概念,編譯期和運行時,涉及到Template主要的故事都是發生在編譯期,這樣大部分的操作可以在編譯時完成,這樣就不需要程序運行時再處理,這樣可以節省很多運行時成本。同樣,這樣的缺點也就是增加了編譯器的編譯處理時間,這個部分也是很多C++程序員抱怨的地方。很多人忍受不了C++的編譯時間過長問題,但是編譯成二進制的代碼運行還是比較快的。

STL

    • STL是個tempate程序庫,同時也是C++自帶的一個標準庫。其中包含了容器,迭代器,算法和函數對象等一組相關性和配合協調默契的程序模板。對該庫的熟練使用,可以幫助我們在C++程序的開發過程中節省很多時間,大大提升開發效率。

對C++語言的這四個次語言的學習,採取各個擊破,層次化學習,可以加速我們對該語言的理解,掌握其大的框架,然後分解學習會更容易理解和學習!

建議初入C++的新手學習,先以C為基礎,然後把面向對象開發的概念搞精通,到這個部分其實對大多數C++開發基本可以上手,但離大神境界還有距離,還需要把設計模式等學習好,這樣百分之八十的C++開發都可以輕鬆搞定了,進一步,就是掌握Template C++,這個階段的學習,不可避免的就是結合STL進行研究學習,當把Template C++也掌握了,那本猿也要承認,你的水平已經超過了百分之九十的C++程序員,小編我也要甘拜下風,喊你一聲大神了!

希望各位在C++的學習道路上,保持好奇心,持續專研!

Effective C++ 讓自己習慣C++

Stay hungry, stay young

後續條款,請持續關注本猿的後續更新。。。。。。。


分享到:


相關文章: