天天看點

C/C++結構體的差別[C++] C/C++結構體的差別

>_<:C中的結構體和C++中結構體的不同之處:

在C中的結構體隻能自定義資料類型,結構體中不允許有函數,而C++中的結構體可以加入成員函數。

>_<:C++中的結構體和類的異同:

一、相同之處:

結構體中可以包含函數;

也可以定義public、private、protected資料成員;

定義了結構體之後,可以用結構體名來建立對象。但C中的結構體不允許有函數;             

也就是說在C++當中,結構體中可以有成員變量,可以有成員函數,可以從别的類繼承,也可以被别的類繼承,可以有虛函數。

二、不同之處:

結構體定義中 預設情況下的成員是public,而類定義中的預設情況下的成員是private的。

類中的非static成員函數有this指針,(而struct中沒 有是錯誤的,一直被誤導啊,經過測試struct的成員函數一樣具有this指針),

類的關鍵字class能作為template模闆的關鍵字 即template<class T> class A{}; 而struct不可以。

實際上,C中的結構體隻涉及到資料結構,而不涉及到算法,也就是說在C中資料結構和算法是分離的,而到C++中一類或者一個結構體可以包含函數(這個函數在C++我們通常中稱為成員函數),C++中的結構體和類展現了資料結構和算法的結合。

本文轉自beautifulzzzz部落格園部落格,原文連結:http://www.cnblogs.com/zjutlitao/p/3913677.html,如需轉載請自行聯系原作者

繼續閱讀