PHP、Java、Python、C、C++ 這幾種編程語言都各有什麼優勢或特色?(四)

PHP、Java、Python、C、C++ 這幾種編程語言都各有什麼優勢或特色?(四)

C++有什麼編程範式?編程

  1. 過程式(使用STL的類C語言編程)
  2. ADT式(自定義抽象數據類型,繼承;可是不用new,不用virtual;拷貝構造;爲了防止資源泄漏,也發明了RAII的方式進行資源的初始化和釋放)
  3. 面向對象式(使用new,使用virtual,須要指針或引用;實現多態。)
  4. 泛型編程(《Modern C++ Design》各類奇淫技巧,業務層代碼比較少遇到)

C++編譯器是怎樣實現的?segmentfault

C++開始有一個叫作cfront的編譯器,即把C++語言先翻譯成C語言。編程語言

而後再用C編譯器來編譯,C的編譯器並不知道此段代碼是來自C++仍是C。
image函數

C++語言特性分別是怎樣實現?簡單說。this

  1. 成員變量:和C語言的struct 相似,最後也會被直接替換成地址,便於高效訪問。
  2. 成員函數:使用特殊函數名編碼方案,翻譯成C函數,並添加this指針做參數。(如___clsA12345func001(…,clsA *this))
  3. 類型繼承體系:經過C++編譯時的Meta-Data來實現。即在編譯時,編譯器是知道類型信息與繼承體系的,可是編譯成C語言後就喪失了此類型信息。
  4. 虛函數、虛繼承:爲了支持多態,這也是「面向對象」最重要的特性,使用了虛函數表和虛基類表。注意,運行時多態是經過運行時查表實現的。稍後詳細說。
  5. 模板:經過代碼複製的方式實現。每次編譯都須要從新編譯,不能編成庫文件直接使用。

推薦觀看:笨辦法學Python!編程小白的第一本Python入門書!編碼

注意!spa

在這裏插入圖片描述

相關文章
相關標籤/搜索