類和結構的區(qū)別
類(class)與結構(struct)都是創(chuàng)建對象的模版,每個對象都包含數(shù)據(jù),并提供了處理和訪問數(shù)據(jù)的方法。類與結構的區(qū)別是它們在內(nèi)存中的存儲方式、訪問方式和一些特性的不同。下面是學習啦小編為大家準備的類和結構的區(qū)別,希望大家喜歡!
類和結構的區(qū)別篇一
結構是一種用關鍵字struct聲明的自定義數(shù)據(jù)類型。與類相似,也可以包含構造函數(shù),常數(shù),字段,方法,屬性,索引器,運算符和嵌套類型等,不過,結構是值類型。
類和結構的區(qū)別篇二
結構的構造函數(shù)和類的構造函數(shù)不同。
a.結構不能包含顯式的無參數(shù)構造函數(shù)。結構成員講自動初始化為它們的默認值。
b.結構不能包含以下形式的初始值設定類:base(argument-list);
類和結構的區(qū)別篇三
對于結構中的實例字段成員,不能在聲明時賦值初始化。
類和結構的區(qū)別篇四
聲明了結構類型后,可以使用new運算符創(chuàng)建構造對象,也可以不使用new關鍵字。如果不使用new,那么在初始化所有字段之前,字段將保持未賦值狀態(tài)且對象不可用。
類和結構的區(qū)別篇五
結構不支持繼承,即一個結構不能從另一個結構或類繼承,而且不能作為一個類的基類。但是,結構從基類OBJECT繼承。結構也可以實現(xiàn)接口。
類和結構的區(qū)別篇六
什么時候用結構呢?結構使用簡單,并且很有用,但是要牢記:結構在堆棧中創(chuàng)建,是值類型,而類是引用類型。每當需要一種經(jīng)常使用的類型,而且大多數(shù)情況下該類型只是一些數(shù)據(jù)時,使用結構能比使用類獲得更佳性能。
編者的話
結構是值類型,所以會影響性能,但根據(jù)使用結構的方式,這種影響可能是正面的,也可能是負面的。正面的影響是為結構分配內(nèi)存時,速度非??欤驗樗鼈儗?nèi)聯(lián)或者保存在堆棧中。在結構超出了作用域被刪除時,速度也很快。另一方面,只要把結構作為參數(shù)來傳遞或者把一個結構賦給另一個結構(例如A=B,其中A和B是結構),結構的所有內(nèi)容就被復制,而對于類,則只復制引用。這樣,就會有性能損失,根據(jù)結構的大小,性能損失也不同。注意,結構主要用于小的數(shù)據(jù)結構。但當把結構作為參數(shù)傳遞給方法時,就應把它作為ref參數(shù)傳遞,以避免性能損失——此時只傳遞了結構在內(nèi)存中的地址,這樣傳遞速度就與在類中的傳遞速度一樣快了。另一方面,如果這樣做,就必須注意被調(diào)用的方法可以改變結構的值。