c 過載的問題

2023-08-18 20:40:07 字數 2238 閱讀 7417

1樓:定復

嗯就是那樣就可以繼承。

public virtual void zz(){子類可以覆蓋該方法(允許在派生類中重寫)

public override void zz(){對父類zz方法的覆蓋。

public void zz(){就是一個普通的公共方法。

2樓:路瓃

public virtual void zz(){如果在父類中有這種寫法,說明子類可以複寫它。

public override void zz(){如果在子類中有這種寫法,說明子類執行了一次複寫操作,但前提是父類中宣告的時候必須用了virtual關鍵字。

public void zz(){說明這只是一個普通的方法,void表明了沒有任何返回值。

3樓:匿名使用者

第一個你說的對。

public virtual void zz(){放在父類,如果子類沒有public override void zz(){則執行父類裡面的那個,如果有,執行自己的這個,但是父類必須有virtual的子類才能用override,沒有的話可以用new 關鍵字遮蔽,也就是說父類public void zz(){子類public new void zz(){如果你不寫new,會暴警告,但還是執行自己的這個。

c#中方法的過載有什麼意義?

4樓:網友

在我理解,過載允許你以同樣的名稱不同的引數來定義多個方法實現,最大的意義就是可以以一種對外統一一批的介面來實現一系列相似的邏輯。通俗的說就是:

1,可以用同樣的名稱來實現多個相似的邏輯,對外看起來就是一個相對比較統一的介面,比如定義一些列的查詢方法,只是傳入的引數不同,採用過載,外部呼叫起來,看到就是一個查詢方法的多個過載,比你寫多個不同名的方法,看起來要清爽得多。

2,可以將一系列相似的邏輯通過過載的形式進行一步一步的封裝,將最終的實現邏輯放到一個最小化的單元內,減少出錯概率。即,先寫一個最靈活的方法,再過載,逐步降低過載的方法的靈活性,以便適應特定的需求,最終的實現邏輯皆封裝在那個最靈活的方法裡,這樣就能實現邏輯的統一控制。

還是打個比方,有一系列同名的查詢方法,都是查詢使用者:

public listgetusers(string username)

public listgetusers(string username, int? age, int? genger)

public listgetusers(string where)

試想一下,如果上面的三個方法,寫成不同的方法名,並各自實現自己的邏輯,這樣一來不好看,二來邏輯被分散到三個方法裡,大大增加了出錯概率,但其實它們最終是可以由一個實現來控制的。

5樓:殭屍

首先你要了解什麼是方法的過載,方法名相同,引數型別不同,引數個數,返回型別可以相同,也可以不同。由上面的定義可以得出我們呼叫同一個方法名,但是可以實現不同的功能。比如我有兩個物件a,b。

物件a想呼叫方法fun來實現相加的功能,那麼我們就寫fun的方法,裡面實現了一個加法。而物件b 也想呼叫方法fun,但是是要實現減法,這個時候直接呼叫fun只能實現加法,怎麼辦呢?方法的過載,這就派上用場了,我們過載fun,接受不同的引數和返回值,就可以實現呼叫同一個方法,但卻實現了不同的功能。

6樓:網友

最有用的是可以按照你自己的意思輸出 也就是客戶的要求。

c#過載一個運算子的時候報這種錯誤怎麼解決呢?

7樓:魔法軟糖

這個問題軟糖來解答把。

問題解析

和!=這兩個運算子依賴於 equals 和 gethashcode 這兩個方法。

所以需要重寫相等判斷和獲取雜湊值的方法。

解決方案:

輸入overri然後按tab會出現一個選單,選擇會自動生成重寫。

public override bool equals(object obj) {

return ;

public override int gethashcode()

return ;

注意事項

盡量使不同的物件生成不同的hashcode

equals方法一般是判斷物件是否為同一個,所以用base的引用相等比較就可以了。

你可以把equals方法改為判斷index是否相等 return ==

C 過載小問題, 求助 C 過載小問題

你先說明這個函式的作用是什麼,如果是求兩個陣列中的所有元素和,可以如下修改 int add int p1,int p2 return sum 如果是返回一個新的陣列,每個陣列的元素為原來兩個陣列中對應元素之和,那麼返回值型別就應該是指標而不是int或char note your choice is ...

c 中函式過載問題,C 中函式過載有啥用?

list類中是否已宣告瞭兩個過載函式?c 中函式過載有啥用?類的建構函式跟類名相同,即建構函式都同名。如果沒有函式過載機制,要想例項化不同的物件非常麻煩。操作符過載,本質上就是函式過載,它大大豐富了已有操作符的含義,方便使用,例如 可用於連線字串等。過載函式是函式的一種特殊情況,為方便使用,c 允許...

c 運算子過載,c 運算子過載

其實第一個回答的程式已經ok了,這裡簡要說明一下 首先,名稱空間的問題。cout endl以及ostream都是定義在std這個名稱空間下的,因此在使用前必須包含這個一個using指示 using namespace std 表明可以使用std裡面的所有內容。除此以外還有兩種選擇 1.使用作用域運算...