C 類class和結構體struct區別

2022-07-05 23:45:09 字數 1231 閱讀 8588

參考改編自: 

c++語言繼承了c語言的struct,並且加以擴充。在c語言中struct是只能定義資料成員,而不能定義成員函式的。

而在c++中,struct類似於class,在其中既可以定義資料成員,又可以定義成員函式。 在c++中,struct與class基本是通用的,唯一不同的是如果使用class關鍵字,類中定義的成員變數或成員函式預設都是private屬性的,而採用struct關鍵字,結構體中定義的成員變數或成員函式預設都是public屬性的

在c++中,沒有拋棄c語言中的struct關鍵字,其意義就在於給c語言程式開發人員有乙個歸屬感,並且能讓c++編譯器相容以前用c語言開發出來的專案。

例1. c++中struct的示例:

1 #include2

using

namespace

std;34

struct

book5;

1011

void

book::display()

1215

16int

main()

17

在本例中,定義了乙個名為book的struct,在其中定義有成員變數title和price,此外還宣告了乙個函式,該函式在struct內部宣告,在結構體外部定義。

程式看到這裡,不難發現,struct和class關鍵字在c++中其基本語法是完全一樣的。接著,我們來看一下主函式。首先通過book結構體定義了乙個物件alice。通過成員選擇符,alice物件在接下來的三行**中分別呼叫了book結構體中定義的變數及函式!

由此可見struct宣告中,預設的屬性為public屬性,在struct外部可以隨意訪問。

例2. c++  class示例

1 #include2

using

namespace

std;34

class

book5;

1011

void

book::display()

1215

16int

main()

17

例2程式相對於例1,只改動了一處:將struct關鍵字替換為class關鍵字。結果,在主函式中定義alice物件之後,我們再企圖通過alice物件訪問其內部的price、title變數及display函式,此時編譯器便會提示編譯錯誤,錯誤提示為這三者是不可訪問的。

swift3 類class與結構體struct

swift 中類和結構體有很多共同點。共同處在於 與結構體相比,類還有如下的附加功能 定義類class class 角色 var 小黃 角色 小黃.安全區角色 id 小黃 money 999 當前角色是小黃,money有999 定義結構體struct struct 座標 var 小黃的座標 座標 小...

C結構體 C 結構體 和 C 類的區別

c結構體 c 結構體基本相同,c 類主要是方法的實現。結構體是資料型別的集合 類是資料型別加方法的集合,基本如此,更注重方法。1.c的結構體和c 結構體的區別 1 c的結構體內不允許有函式存在,c 允許有內部成員函式,且允許該函式是虛函式。所以c的結構體是沒有建構函式 析構函式 和this指標的。2...

C 類和物件,結構體

趁著中秋放假要多補補知識了,感覺自己對c 了解的不夠紮實,為了更好的工作,只好再來看看。c和c 規定可以用乙個結構體,裡面即可有陣列,也可以有其他變數。c中成員只能是資料,c 除了資料,還可以是函式。但是,c 提供了類這個東西,所以不需要包含函式的結構體。1,結構體 include using na...