類和結構體的區別

2021-09-19 12:52:44 字數 775 閱讀 2187

區別:1.型別不同:結構是一種值型別,而類是引用型別。值型別用於儲存資料的值,引用型別用於儲存對實際資料的引用。那麼結構體就是當成值來使用的,類則通過引用來對實際資料操作。

2.儲存不同:結構使用棧儲存,而類使用堆儲存。棧的空間相對較小.但是儲存在棧中的資料訪問效率相對較高.堆的空間相對較大.但是儲存在堆中的資料的訪問效率相對較低。

3.作用不同:類是反映現實事物的一種抽象,而結構體的作用只是一種包含了具體不同類別資料的一種包裝,結構體不具備類的繼承多型特性。

4.關鍵字不同:在類中可以使用但是在結構中限制使用的關鍵字有:abstract、sealed、protected;static關鍵字可以用在類名前面用來宣告靜態類,但是不能用在struct前面,不存在靜態結構。

5.初始化不同:類可以在宣告的時候初始化,結構不能在申明的時候初始化(不能在結構中初始化字段),否則報錯。

類的實質是一種資料型別,類似於int、char等基本型別,不同的是它是一種複雜的資料型別。因為它的本質是型別,而不是資料,所以不存在於記憶體中,不能被直接操作,只有被例項化為物件時,才會變得可操作。

在c語言中,為了實現我想要的結構,可以自定義定義結構體型別,將多個相關的變數包裝成為乙個整體使用。在結構體中的成員,可以是相同、部分相同,或完全不同的資料型別。在c語言中,結構體不能包含函式。

在物件導向的程式設計中,物件具有狀態(屬性)和行為,狀態儲存在成員變數中,行為通過成員方法(函式)來實現。c語言中的結構體只能描述乙個物件的狀態,不能描述乙個物件的行為。在c++中,對結構體進行了擴充套件,c++的結構體可以包含函式。

向左轉|向右轉

類和結構體區別

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

結構體和類的區別

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

結構體和類的區別

1.c的結構體和c 結構體的區別 1.1 c的結構體內不允許有函式存在,c 允許有內部成員函式,且允許該函式是虛函式。所以c的結構體是沒有建構函式 析構函式 和this指標的。1.2 c的結構體對內部成員變數的訪問許可權只能是public,而c 允許public,protected,private三...