程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 讀書筆記-effective c++ Item 1

讀書筆記-effective c++ Item 1

編輯:關於C++

讀書筆記-effective c++ Item 1。本站提示廣大學習愛好者:(讀書筆記-effective c++ Item 1)文章只能為提供參考,不一定能成為您想要的結果。以下是讀書筆記-effective c++ Item 1正文


Item 1 將c++視為一個言語聯邦

如今的c++曾經是一個多重泛型變成言語。支持進程化,面向對象,函數式,泛型和元編程的組合。這種弱小使得c++無可匹敵,卻也帶來了一些問題。一切“適宜的”規則看上去都有例外。我們怎樣了解這樣一門言語?

最容易的辦法是不要將其看成單一的一門言語而是將其看成是一個有相關性的言語的聯邦。在一個特定的子言語中,一些規則就比擬復雜,明白並且容易記憶。當你從一個子言語切換到另外一個子言語時,這些規則能夠會改動。為了更好的了解c++,你必需辨認次要的子言語,僥幸的是,只要四種子言語:

  • C.c++以c言語為根底。塊,聲明,預處置,內建類型,數組,指針等等。都來自於c言語。在許多狀況下,c++只不過提供了一些比c初級的解法,但是當你發現你自己正在運用c++中的c言語局部時,高效編程的規則反映出c言語更多的局限性:沒有模板,沒有異常處置,沒有重載等等。
  • 面向對象c++.c++這局部就是帶類的c言語,次要包括:類(包括析構函數和結構函數),封裝 ,承繼,多態,虛函數(靜態綁定)等等。
  • 模板c++.這是c++的泛型編程局部,也是大少數順序員在經歷方面所完善的,關於模板編程的設計普及整c++編程,一些好的編程規則中包括只適用於模板的條款。現實上,模板編程如此弱小,它帶來了一個新的編程范型,模板元編程(TPM).
  • STL.STL是一個模板庫。它將容器,迭代器,算法和函數對象優雅的整合到一同,模板和庫也可以用其他的辦法構建出來。運用模板庫有自己特殊的方式,當你在運用STL時,你必需遵照它的商定。

將這四種子言語記在心裡,在不同的子言語之間停止切換時,高效編程能夠需求變換戰略,譬如,c言語中關於內建類型,按值傳遞比按援用傳遞要高效。在c++中,關於類對象來說,由於用戶自定義的結構函數和析構函數的存在,按援用傳遞比按值傳遞要高效,模板c++中也是如此。但是在STL中,迭代器和函數對象是模擬的C言語中的指針,因而按值傳遞會比擬高效。

因而c++不是一致規范的言語。它是一個言語聯邦,每個子言語都有自己的商定。

 轉載請注明出處

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved