條款01:視C++爲一個語言聯邦)

條款01:視C++爲一個語言聯邦


如何理解C++語言:

最簡單的方法就是將C++視爲由一個相關語言組成的聯邦而非單一的語言.四個次語言組成了C++這門聯邦語言

C++ 的四個次語言
  • C : 說到底C++仍是以C爲基礎區塊,語句,預處理器,內置數據類型
  • Object-Oriented C++ :面向對象 , class,封裝,繼承,多態度,虛函數… 這一部分則是面向對象設計的
  • Template C++ : 這是C++泛型編程的部分,也是大多程序員經驗最少的部分
  • STL: STL是個template程序庫,但它是非常特殊的一個.它對容器,迭代器,算法以及函數對象的規約有極佳的緊密配合與協調.
記住這四個次語言,當你從某個次語言切換到另一個,搞笑編程守則是要求你去改變策略的
例如:
對於內置(C-like)類型而言pass-by-value通常比pass-by-reference搞笑,但是當你從C part of C++ 
遷移到Object-Oriente C++ (面向對象),由於用戶定義的構造函數和析構函數(導致分配內存)的存在,
pass-by-reference-to-const往往更好.
運用Template C++時尤其更如此,以爲你甚至都不知道你所處理的對象的類型.
然而一旦跨入STL時,你就會了解,迭代器和函數對象都是在C指針之上塑造額,所以對STL的迭代器和函數對象而言,
舊式的pass-by-value守則再次使用

因此C++並不是一個帶有一組守則的一體語言,它是從四個次語言組成的聯邦政府,每個次語言都有自己的規約.記住這四個次語言,你就會發現C==將容易理解很多


注:本文都是根據侯捷老師翻譯的effective c++ 而寫的一些筆記和摘抄的內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章