C C 類和結構體的區別

2021-09-28 23:36:37 字數 647 閱讀 3219

在c++中,結構體是一種特殊形態的類。

類中的非static成員函式有this指標,類的關鍵字class能作為template模板的關鍵字 即template class a{}; 而struct不可以。

c++中,不使用結構體絲毫不會影響程式的表達能力。c++之所以要引入結構體,是為了保持和c程式的相容性

但有時仍會在c++中使用結構體,是因為,可以使用結構體將不同型別資料組成整體,方便於儲存資料結構。(若用類來儲存,因類中成員預設為私有,還要為每個資料成員特定函式來讀取和改寫各個屬性,比較麻煩。)

c中的結構體只涉及到資料結構,而不涉及到演算法,也就是說在c中資料結構和演算法是分離的,而到c++中乙個類或者乙個結構體可以包含函式(這個函式在c++我們通常中稱為成員函式),c++中的結構體和類體現了資料結構和演算法的結合。

c語言中結構體不允許定義函式成員,且沒有訪問控制屬性的概念。

c++為c語言中的結構體引入了成員函式、訪問控制許可權、繼承、包含多型等物件導向特性。

c++在struct之外引入了class關鍵字,但為了保持與c程式的相容,c++保留了struct關鍵字,並規定結構體預設訪問控制許可權為公有型別。

c語言中,空結構體的大小為0,而c++中空結構體(屬於空類)的大小為1。

C C 類和結構體的差別

c c 結構體的區別 c中的結構體和c 中結構體的不同之處 在c中的結構體只能自定義資料型別,結構體中不允許有函式,而c 中的結構體可以加入成員函式。c 中的結構體和類的異同 一 相同之處 結構體中可以包含函式 也可以定義public private protected資料成員 定義了結構體之後,可...

類和結構體區別

c 中類和結構體區別 類是有行動 方法和成員的有機體,而結構體是活生生的有機體。1 值型別和引用型別 類是引用型別,繼承system.object,資料儲存在堆上,結構體值型別,繼承system.valuetype,資料儲存在堆疊上 堆疊上的物件有編譯器自動建立和銷毀,所以堆疊的執行效率要高些,但是...

結構體和類的區別

結構體和類的區別 結構體struct 的預設成員訪問許可權是public 類class的預設成員訪問許可權是private ps 以前總以為struct不能定義成員函式 包括建構函式 析構函式 其實是錯誤的。在c 裡面,class和struct除了上面的不同,其他完全一致。可能有人會想,那為什麼c ...