結構體和類的區別
1.C的結構體和C++結構體的區別
C的結構體內不允許有函式存在,C++允許有內部成員函式,且允許該函式是虛擬函式。所以C的結構體是沒有建構函式、解構函式、和this指標的。
C的結構體對內部成員變數的訪問許可權只能是public,而C++允許public,protected,private三種。
C語言的結構體是不可以繼承的,C++的結構體是可以從其他的結構體或者類繼承過來的。
以上都是表面的區別,實際區別就是面向過程和麵向物件程式設計思路的區別:
C的結構體只是把資料變數給包裹起來了,並不涉及演算法。
而C++是把資料變數及對這些資料變數的相關演算法給封裝起來,並且給對這些資料和類不同的訪問許可權。
C語言中是沒有類的概念的,但是C語言可以通過結構體內建立函式指標實現面向物件思想。
2.C++的結構體和C++類的區別
C++結構體內部成員變數及成員函式預設的訪問級別是public,而c++類的內部成員變數及成員函式的預設訪問級別是private。
C++結構體的繼承預設是public,而c++類的繼承預設是private。