筆記:
https://blog.csdn.net/qiaoquan3/article/details/51234208
http://xcodeabc.blogspot.com/2014/01/c-class-and-struct.html
可以分成以下幾點來討論
class | struct | |
記憶體分配 | 引用類型 | 值類型 |
建構子 | 可以使用無參數建構子 | 建構子一定要引用參數,也不能使用解構子) |
結構成員 | 初始化可以給值 | 只能定義 |
繼承 | 可以繼承,也可以實作抽象化的類別或介面 | 沒有繼承,但可以實作介面 |
默認修飾詞 | private | public |
建構子儲存類型 | heap | stack |
這會造成,如果把class 或 struct建構的實例丟進方法裡面去計算會有所不同
class會直接引用記憶體位置,而stack是複製一個一模一樣的過去但根本身為不同一個
引用類型跟值類型的差別:
https://dotblogs.com.tw/skyline0217/2011/04/22/23327
而何時使用struct呢? (以下引用MSDN)
✓ CONSIDER 定義而不是類別結構,如果執行個體類型的小,通常存留較短或嵌入其他物件。
X AVOID 定義結構,除非該類型具有所有下列特性:
-
它以邏輯方式表示的單一值,類似於基本型別 (
int
,double
,依此類推。)。 -
它具有執行個體大小小於 16 個位元組。
-
它永遠不變。
-
它不會經常 boxed。
@copyright MRcodingRoom
觀看更多文章請點MRcoding筆記
觀看更多文章請點MRcoding筆記