條款1 視C 為乙個語言聯邦

2021-09-26 15:56:50 字數 811 閱讀 8925

view c++ as a federation of languages.

今天的c++已經是個多重范型程式語言(multiparadigm programming language),乙個同時支援過程形式(procedural)、物件導向形式(object-oriented)、函式形式(functional)、泛型形式(generic)、元程式設計形式(metaprogramming)的語言。這些能力和彈性使c++成為乙個無可匹敵的工具,但也可能引發某些迷惑:所有「適當用法」似乎都有例外。我們該如何理解這樣乙個語言呢?

最簡單的方法是將c++視為乙個由相關語言組成的聯邦而非單一語言。在其某個次語言(sublanguage)中,各種守則與通例都傾向簡單、直觀易懂、並且容易記住。然而當你從乙個次語言轉移往另乙個次語言,守則可能改變。為了理解c++,你必須認識其主要的次語言。幸運的是總共只有四個:

記住這四個次語言,當你 從某個次語言切換到另乙個,導致高效程式設計守則要求你改變策略時,不要感到驚訝。例如對內建(也就是c-like)型別而言pass-by-value通常比pass-by-reference高效,但當你從c part of c++移往object-oriented c++,由於使用者自定義(user-defined)建構函式和析構函式的存在,pass-by-reference-to-const往往更好。運用template c++時尤其如此,因為彼時你甚至都不知道所處理的物件的型別。然而一旦跨入stl你就會了解,迭代器和函式物件都是在c指標之上塑造出來的,所以對stl的迭代器和函式物件而言,舊式的c pass-by-value守則再次適用。

請記住:

c++高效程式設計守則視狀況而變化,取決於你使用c++的哪一部分。

條款01 視C 為乙個語言聯邦

條款01 視c 為乙個語言聯邦 view c as a federation of languages 內容 今天的c 已經是個多重範形程式語言 multiparadigm programming language 乙個同時支援過程形式 procedural 物件導向形式 object orient...

視C 為乙個語言聯邦

c 是個多重泛型程式語言,同時支援以下形式的語言 1 過程形式 2 物件導向形式 3 函式形式 4 泛型形式 5 元程式設計形式。理解c 的方法 將c 視為乙個由相關語言組成的聯邦而非單一語言。在其某個次語言中,各種守則與通例都傾向簡單 直觀易懂 並且容易記住。當從乙個次語言移至另乙個次語言,守則可...

Item 01 視C 為乙個語言聯邦

item 01 view c as a federation of languages 如今的c 已經是個多重范型程式語言 乙個同時支援過程形式 procedural 物件導向形式 object oriented 函式形式 functional 泛型形式 generic 元程式設計性形式 metap...