1.C的結構體和C++結構體的區別
1.1 C的結構體內不允許有函數存在,C++允許有內部成員函數,且允許該函數是虛函數。所以C的結構體是沒有構造函數、析構函數、和this指針的。
1.2 C的結構體對內部成員變量的訪問權限只能是public,而C++允許public,protected,private三種。
1.3 C語言的結構體是不可以繼承的,C++的結構體是可以從其他的結構體或者類繼承過來的。
以上都是表面的區別,實際區別就是面向過程和面向對象編程思路的區別:
C的結構體只是把數據變量給包裹起來了,並不涉及算法。
而C++是把數據變量及對這些數據變量的相關算法給封裝起來,並且給對這些數據和類不同的訪問權限。
C語言中是沒有類的概念的,但是C語言可以通過結構體內創建函數指針實現面向對象思想。
2.C++的結構體和C++類的區別
2.1 C++結構體內部成員變量及成員函數默認的訪問級別是public,而c++類的內部成員變量及成員函數的默認訪問級別是private。
2.2 C++結構體的繼承默認是public,而c++類的繼承默認是private。