struct 和 class的異同函數
一圖理解struct和class的異同spa
1 相同點對象
A struct和class是同一等級的,屬於命名空間下blog
B 能夠定義字段、屬性、方法、構造器等繼承
C 有默認的無參構造方法接口
2 不一樣點class
A 定義語法關鍵字不一樣(struct class)命名空間
B struct是值類型,class是引用類型,struct存儲在棧中,但其中定義的引用類型是存儲在堆中的構造函數
C struct中字段不能賦初始值,class中字段沒有影響語法
D struct不能定義無參數的構造方法,且在有參構造函數中必須爲全部字段和屬性賦值
E struct中有參構造方法不會覆蓋默認的無參構造方法,便可以new無參的結構,class中有參構造方法會覆蓋默認的無參構造方法,
即沒法調用默認無參構造方法,所以在class中最好定義一個無參構造方法,防止new建立對象失敗。
F 結構不能定義析構方法,class能夠
G struct能夠繼承接口不能夠繼承class,class既能夠繼承接口,又能夠繼承class
3 適用狀況
struct是一種特殊的值類型,棧的空間小,訪問速度快,struct適用於字段、屬性較少,
做爲一種組合類型使用,class做爲一種面向對象拓展的類型使用。