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...