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

C語言結構體和C++類的區別

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。