1. 程式人生 > >科銳課堂筆記:2017/4/4 初識C++

科銳課堂筆記:2017/4/4 初識C++

  換老師講C++。

  C++最主要的三大特性:封裝、繼承、多型。
  封裝指把資料和行為組合在物件裡。在C語言中描述一個物件的資料、屬性可以用結構體封裝,但是每個物件的行為、方法只能另外單獨定義的一個函式(使用函式指標、巨集去模擬C++類,語義上看不倫不類),函式與資料的聯絡只能通過指標,用指標傳過來傳過去,傳了錯誤的指標也不知道。況且人類的正常思維來看,一個物件的方法、屬性本身就是一體的,分離出來的話不符合人類思考方式。所以C++從語法上支援了類的概念,把這些東西封裝在一起,讓編寫程式更適合人類思考問題的方式。
  既然可以把現實中的事物用物件來表示,自然的,事物與事物的關係、從屬等等當然也要有其表現形勢,繼承就是其中之一。
  所謂多型指擁有多型的類物件,都有一個共同的抽象基類(只有虛擬函式),通過過載其虛擬函式實現函式的多型。這些都是語法上看似高階的東西,說穿了就是一個類物件基址存放著一個虛擬函式表指標,這些所謂多型函式或者叫方法都是在執行時呼叫表裡對應項的虛擬函式指標。

  C++對C擴充套件的幾個部分:
  1. 新增布林型別(bool),布林型別大小1位元組。
  2. 定義變數不必強制集中在函式頭部。
  3. 名字空間作用域與類域。定義一個名稱空間用namespace關鍵字,花括號內的一切都屬於該名稱空間,而且命名還可以在不同地方分段定義,編譯器最終會將它們合併。在檔案中如果想使用名稱空間裡的東西,一直接空間名+作用域符+引用名,二先宣告一次using 空間名+作用域符+引用名,以後直接使用引用名,三宣告使用整個名稱空間using namespace 空間名,空間裡所以東西都可直接引用了。
  編譯器查詢變數或函式的規則是,從內到外,找到則使用,找不到就報錯。