2011-03-14 44 views

回答

0

你知道int和float不需要被「初始化」(設置爲new int/float)嗎?

結構體是一種聲明類似於類的成員的排列方式,其行爲如此。

+0

'類'結構''可以在它們的構造函數中初始化。 – Jalal 2011-03-14 07:18:03

+0

是的,我想我的措辭是不準確的,我試圖貶低引用類型與值類型的想法 – deek0146 2011-03-14 10:04:48

2

引文從MSDN

的結構類型是適合於表示輕物體,如點,矩形和顏色。儘管可以將一個點表示爲一個類,但在某些情況下,結構更有效。例如,如果聲明一個由1000個Point對象組成的數組,您將分配額外的內存來引用每個對象。在這種情況下,結構更便宜。

5

Struct是值類型。類是一個對象類型。

當您不需要通過引用將函數/方法參數傳遞給函數/方法參數時,即可以使用值類型 - 即不能在函數/方法中更改它。

每當你將它傳遞到一個功能/方法,它總是得到複製(即傳值),不會被refernce。當像對象一樣被訪問時,結構自動裝箱盒裝

實際上,只要有大量數據形成一個整體(例如Color with RGB,帶有XYZ的矢量,複數等),並且整個項目形成一個單元,就可以使用結構進行建模。

它們也用於與非託管庫(例如接受結構參數的C或C++ DLL函數)進行接口。