視C 為乙個語言聯邦

2021-07-10 12:43:12 字數 862 閱讀 7756

c++是個多重泛型程式語言,同時支援以下形式的語言:

1)過程形式;

2)物件導向形式;

3)函式形式;

4)泛型形式;

5)元程式設計形式。

理解c++的方法:將c++視為乙個由相關語言組成的聯邦而非單一語言。在其某個次語言中,各種守則與通例都傾向簡單、直觀易懂、並且容易記住。當從乙個次語言移至另乙個次語言,守則可能改變。下面主要介紹c++的主要次語言。

c++是以c為基礎的。區塊、語句、預處理、內建資料型別、陣列、指標等都來自c。有時候c++問題的解法就是較高階的c解法。但是c++內的c成分存在侷限,沒有模板、沒有異常、沒有過載。

object-oriented c++

此語言主要包括classes(包括建構函式和析構函式),封裝,繼承,多型,virtual 函式(動態繫結)等等。

這是c++的泛型程式設計部分。templates威力強大,它能帶來嶄新的程式設計範性,即template metaprogramming(tmp,模板元程式設計)。

stl是乙個特殊的template程式庫。它對容器、迭代器、演算法以及函式物件的規約有極佳的緊密配合和協調,然而templates及程式庫也可以其他想法建置出來。stl有自己特殊的辦事方式。

c++高效程式設計守則視情況而變化,取決於你使用c++的那一部分。對內建(如c)型別而言,pass by value通常比pass by reference高效,對object-oriented c++,由於存在使用者自定的建構函式和析構函式,pass by reference to const往往更好。而template使用,彼此甚至不知道所處理的物件的型別。stl中迭代器和函式都是在c指標上塑造出來的,故對其而言,pass by value守則適用。

參考:effective c++ 侯捷

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

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

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

view c as a federation of languages.今天的c 已經是個多重范型程式語言 multiparadigm programming language 乙個同時支援過程形式 procedural 物件導向形式 object oriented 函式形式 functional ...

Item 01 視C 為乙個語言聯邦

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