struct和class異同

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做爲一種面向對象拓展的類型使用。

相關文章
相關標籤/搜索