結構體和類

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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章