C 結構體與類的區別

2022-06-21 22:36:15 字數 965 閱讀 2792

相同之處:

c++中的結構體中可以包含函式,也可以定義public、private、protected資料成員;定義了結構體之後,可以使用結構體名來建立物件,但是c中的結構體不允許含有函式;即

在c++中,結構體中可以有成員變數,成員函式,可從別的類繼承,也可以被別的類繼承,可以含有虛函式

不同之處:

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

類中的非static成員函式有this指標(c++的結構體的非static成員函式也一樣具有this指標),類的關鍵字class能作為template模板的關鍵字,即templateclass a{};而結構體的struct不可以;

c的結構體內不允許有函式存在,c++允許有內部成員函式,並且允許該函式是虛函式;所以c的結構體是沒有建構函式、析構函式和this指標的;

c的結構體對內部成員變數的訪問許可權只能是public,而c++允許public、protected和private三種;

c語言的結構體是不可以繼承的,c++的結構體是可以從其他的結構體或者類繼承過來的;

以上是表面的區別,實質上的區別是面向過程物件導向程式設計思想的區別:c的結構體值時把資料變數給包裹起來了,並不涉及演算法;而c++是把資料變數以及對這些資料變數的相關演算法給封裝起來,並且給對這些資料和類不同的訪問許可權;

預設許可權區別:結構體->public 類->private

c++結構體內部成員變數成員以及成員函式預設的訪問級別是public的,而c++類的內部成員變數以及成員函式的預設訪問級別是private的;

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

C 結構體與類的區別

學習了c 的物件導向,最常見的和寫的就是類結構體,下面主要介紹一下結構體和類的區別。首先類是c 中物件導向獨有的,但是c和c 中都有結構體,下面我們來看一下c和c 中結構體的區別。這裡主要從封裝 多型 繼承 封裝和訪問許可權幾個方面來說。1 c和c 中結構體的區別 1 多型 c的結構體內不允許有函式...

C 結構體與類的區別

c 中的結構體型別 struct 型別是一種值型別,通常用來封裝小型相關變數組,例如,矩形的座標或庫存商品的特徵。下面的示例顯示了乙個簡單的結構宣告。public struct postaladdress 結構與類共享幾乎所有相同的語法,但結構比類受到的限制更多 儘管結構的靜態字段可以初始化,結構例...

C 中結構體與類的區別

學習了c 的物件導向,最常見的和寫的就是類結構體,下面主要介紹一下結構體和類的區別。首先類是c 中物件導向獨有的,但是c和c 中都有結構體,下面我們來看一下c和c 中結構體的區別。這裡主要從封裝 多型 繼承 封裝和訪問許可權幾個方面來說。1 c和c 中結構體的區別 1 多型 c的結構體內不允許有函式...