1. 程式人生 > >C結構體、C++結構體 和 C++類的區別

C結構體、C++結構體 和 C++類的區別

1.C的結構體和C++結構體的區別
(1) C的結構體內不允許有函式存在,C++允許有內部成員函式,且允許該函式是虛擬函式。所以C的結構體是沒有建構函式、解構函式、和this指標的。
(2)C的結構體對內部成員變數的訪問許可權只能是public,而C++允許public,protected,private三種。
(3)C語言的結構體是不可以繼承的,C++的結構體是可以從其他的結構體或者類繼承過來的。

 以上都是表面的區別,實際區別就是面向過程和麵向物件程式設計思路的區別:
 C的結構體只是把資料變數給包裹起來了,並不涉及演算法。
 而C++是把資料變數及對這些資料變數的相關演算法給封裝起來,並且給對這些資料和類不同的訪問許可權。
C語言中是沒有類的概念的,但是C語言可以通過結構體內建立函式指標實現面向物件思想。

C與C++中定義結構體的不同方式: