C 中類和結構體區別的整理(筆記)

2021-08-02 04:26:21 字數 448 閱讀 7793

1.在結構體中可以宣告字段,但是宣告欄位的時候是不能給初始值的

其實類中的字段也不能給初始值,編譯器會自動把賦值操作放在建構函式裡

2.建構函式在類中如果不寫會自動新增乙個無參建構函式,構造體中的無參建構函式不能手寫

3.結構體的建構函式必須為每個欄位都賦值

4.構造體可以直接宣告變數(不用new),但是這樣的構造體是沒有初值的(因為沒有調建構函式)

5.結構體不能繼承,只能實現介面,但是實際上結構體預設繼承自valvetype類,valvetype類又繼承自object類,所以結構體擁有object類的成員

6.結構體的儲存是值型別,儲存在棧中,類是引用型別,儲存在堆中。因此結構體適用於小的輕量級的物件或者需要值傳遞的物件,而類使用於大的重量級的物件或者需要傳遞引用的物件。

7.結構體沒有析構函式(我的理解是由於結構體儲存在棧中,棧在超出域後自動彈出,無需析構函式來釋放)

c 中結構體和類的區別

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

C 中類和結構體的區別

c 結構體內部成員變數及成員函式預設的訪問級別是public,而c 類的內部成員變數及成員函式的預設訪問級別是private。c 結構體的繼承預設是public,而c 類的繼承預設是private,所以類在繼承的時候需要public 結構體 沒有預設的建構函式,但是可以新增建構函式 沒有析構函式 沒...

C 中結構體和類的區別

c 中結構型別和類型別在語法上非常相似,他們都是一種資料結構,都可以包括資料成員和方法成員。結構和類的區別 1 結構是值型別,它在棧中分配空間 而類是引用型別,它在堆中分配空間,棧中儲存的只是引用。2 結構型別直接儲存成員資料,讓其他類的資料位於堆中,位於棧中的變數儲存的是指向堆中資料物件的引用。c...