C 基礎知識 結構與類的區別

2022-08-30 22:42:29 字數 746 閱讀 3774

網上看到struct與class之間的區別,都寫的很多,當然說的是對的,也很詳細。不過我個人不喜歡照本宣科,還是要有自己的理解和認識,方便記憶。

(前提:對於值型別與引用型別有一定的認識)

結構最重要的兩點:

以前總會糾結乙個問題,什麼時候用class,什麼時候用struct。(不知道大家有沒有同樣的困惑)

值型別:就代表它儲存的位置是stack(堆)上,儲存在stack上就代表,它傳遞的不是值所在記憶體中的指標,代表它傳遞的是副本,這些最終說明了乙個問題,就是在changevalue這個方法裡修改它的值之後,在main方法中並沒有任何影響。

static

void main(string

args)

public

static

object

changevalue(personclass personclass, personstruct personstruct)

結果:

不能被繼承:這個很好理解,它不能繼隨別人,別人也不能繼承它。當然它是可以實現介面的。

結構與類之間相同處很多很多。我們無需記住相同點,只需要記住不同點(型別與繼承),自然就知道在什麼樣的場景可以使用結構。

tip:msdn給出的建議,以下幾種情況適合使用struct

非常感謝。

如果對您有幫助,請點贊!

前端開發基礎知識結構

無媛無故 wangchloe的個人部落格 還記得 jayli 的這幅前端知識結構圖麼。的形式具有諸多的不便。缺失源圖的我們,無法為此圖貢獻些什麼,隨著時間的遷移,或許有些技術點會發生改變,所以有了這個github專案。我們可以通過協作的方式來共同維護這個專案。git的歷史記錄也可以見證前端行業的一些...

C 類與物件基礎知識

1.初步認識類與物件 主觀世界的抽象類別 計算機世界中的類 現實世界的實體 計算機世界的物件 在現實世界中,實體被抽象成抽象類別 在計算機世界中,類可以被例項化為物件 簡述c語言與c 的區別 c語言是面向過程的,關注的是過程,分析出求解問題的步驟,通過函式呼叫逐步解決問題 c 基於物件導向的,關注的...

C 類 基礎知識

目錄3.2 複製建構函式 3.3 析構函式 4.類組合 class class name功能 用於在建立類時給類設定初值 形式note 在宣告中定義了預設引數時,實現中不能再指定預設引數。下面 執行會報錯 void func int x 0 void func int x 0 呼叫時機 預設建構函式...