類和結構的區別
類***class***與結構***struct***都是建立物件的模版,每個物件都包含資料,並提供了處理和訪問資料的方法。類與結構的區別是它們在記憶體中的儲存方式、訪問方式和一些特性的不同。下面是小編為大家準備的,希望大家喜歡!
篇一
結構是一種用關鍵字struct宣告的自定義資料型別。與類相似,也可以包含建構函式,常數,欄位,方法,屬性,索引器,運算子和巢狀型別等,不過,結構是值型別。
篇二
結構的建構函式和類的建構函式不同。
a.結構不能包含顯式的無引數建構函式。結構成員講自動初始化為它們的預設值。
b.結構不能包含以下形式的初始值設定類:base***argument-list***;
篇三
對於結構中的例項欄位成員,不能在宣告時賦值初始化。
篇四
聲明瞭結構型別後,可以使用new運算子建立構造物件,也可以不使用new關鍵字。如果不使用new,那麼在初始化所有欄位之前,欄位將保持未賦值狀態且物件不可用。
篇五
結構不支援繼承,即一個結構不能從另一個結構或類繼承,而且不能作為一個類的基類。但是,結構從基類OBJECT繼承。結構也可以實現介面。
篇六
什麼時候用結構呢?結構使用簡單,並且很有用,但是要牢記:結構在堆疊中建立,是值型別,而類是引用型別。每當需要一種經常使用的型別,而且大多數情況下該型別只是一些資料時,使用結構能比使用類獲得更佳效能。
編者的話
結構是值型別,所以會影響效能,但根據使用結構的方式,這種影響可能是正面的,也可能是負面的。正面的影響是為結構分配記憶體時,速度非常快,因為它們將內聯或者儲存在堆疊中。在結構超出了作用域被刪除時,速度也很快。另一方面,只要把結構作為引數來傳遞或者把一個結構賦給另一個結構***例如A=B,其中A和B是結構***,結構的所有內容就被複制,而對於類,則只複製引用。這樣,就會有效能損失,根據結構的大小,效能損失也不同。注意,結構主要用於小的資料結構。但當把結構作為引數傳遞給方法時,就應把它作為ref引數傳遞,以避免效能損失——此時只傳遞了結構在記憶體中的地址,這樣傳遞速度就與在類中的傳遞速度一樣快了。另一方面,如果這樣做,就必須注意被呼叫的方法可以改變結構的值。
- 類和結構的區別
- 醫院團員自我評議範文
- 遊戲愛情宣言經典語錄_戀愛宣言經典語錄
- 動漫人物手繪設計圖片欣賞
- 冷酷動漫美女圖片
- 五行屬木的男孩子取什麼名字
- 短一點的座右銘大全
- 初三畢業抒情散文_初中畢業的散文
- 獅子座男生與水瓶座女生適合在一起嗎
- 集思廣益的意思是什麼
- 區域網未知的使用者名稱或密碼錯誤解決辦法
- 高中畢業給老師留言精選
- 幼兒園小班保教工作計劃
- 如何培養孩子良好的英語學習習慣
- 關於利率市場化對商業銀行的影響論文
- 羊肉冬瓜湯的家常做法
- 有關小學消防手抄報的文字圖片
- 民間有趣的俗語有哪些
- 紫菜與什麼食物相剋
- 男生最傷感個性簽名
- 康熙字典五行屬金的字
- 康熙字典五行屬木的字
- 康熙字典五行屬水的字
- 康熙字典五行屬火的字
- 康熙字典五行屬土的字