小論結構體和類(以C和C++爲例)

2020-08-11 20:59:33

C/C++中結構體的區別:
1、C中的結構體是能夠封裝c語言中已經存在的數據型別和自定義的數據型別,但不能含有函數,而c++是物件導向的除了自身地屬性以外,還能夠封裝行爲方法,所以在C++的結構體中是能夠定義成員函數的;
2、C++中的結構體相當於一個特殊的類;
3、C語言中定義結構體變數是需要加上struct關鍵字的,而C++是不需要加;

C++中結構體和類的異同:
不同之處:
1、結構體在預設情況下成員是公共的(public),類在預設情況下成員是私有的(private)。

2、C++結構體內部成員變數及成員函數預設的存取級別是public,而c++類的內部成員變數及成員函數的預設存取級別是private。

3、C++結構體繼承預設public,而c++類的繼承預設是private。

4、加上public變成共有的才能 纔能被直接存取,而結構本身就是共有的可直接存取

相同之處:
結構體中可以包含函數;也可以定義public、private、protected數據成員;定義了結構體之後,可以用結構體名來建立物件。但C中的結構體不允許有函數;
也就是說在C++當中,結構體中可以有成員變數,可以有成員函數,可以從別的類繼承,也可以被別的類繼承,可以有虛擬函式。