類和結構體的區別


結構體(sturct)是一種值類型,而類(class)是引用類型。區別在於復制方式,值類型的數據是值賦值,引用類型的數據是引用復制。

結構體使用棧存儲(Stack Allocation),而類使用堆存儲(Heap Allocation)。  

  棧的空間相對較小.但是存儲在棧中的數據訪問效率相對較高。

  堆的空間相對較大.但是存儲在堆中的數據的訪問效率相對較低

結構體使用完之后就自動解除內存分配,類實例有垃圾回收機制來保證內存的回收處理

 

如何選擇結構體還是類

1. 堆棧的空間有限,對於大量的邏輯的對象,創建類要比創建結構好一些
2. 結構體表示如點、矩形和顏色這樣的輕量對象,例如,如果聲明一個含有 1000 個點對象的數組,則將為引用每個對象分配附加的內存。在此情況下,結構體的成本較低。
3. 在表現抽象和多級別的對象層次時,類是最好的選擇,因為結構體不支持繼承
4. 大多數情況下該類型只是一些數據時,結構體時最佳的選擇

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM