1樓:匿名使用者
函式過載是同一範圍中宣告幾個功能類似的同名函式,但是這些同名函式的形式引數(指引數的個數、型別或者順序)必須不同,也就是說用同一個函式完成不同的功能。不能只有函式返回值型別不同。
擴充套件資料過載函式必須在下列一個或兩個方面有所區別:
1、函式的引數個數不同。
2、函式的引數型別不同或者引數型別順序不同。
2樓:匿名使用者
如果你想問的是,函式過載,函式名相同,但函式的返回值不同,是不是可以。答案應該是可以的,因為函式過載關注的是引數。比如 int max(int n,int m); int max(int a,int b,int c);這樣也不會報錯。
3樓:
構成過載,但大部分都是錯誤的過載,只有極少部分不是,比如虛擬函式的過載返回值可以不同,父類返回父型別,子類可以返回子型別,運算子的過載子類返回子型別,父類返回父型別然而其他過載就不同,難以根據返回值缺定要呼叫那個函式,出現二義性錯誤,生成不了**。
4樓:
呵呵,不能的。
過載必須要用引數來區分,傳入不同引數,可以實現過載。
至於原因,可以這樣理解,你呼叫一個方法,如果有多個方法同名,系統必須要知道到底你要呼叫哪一個,引數可以幫助系統在方法入口處得到答案,他根據你給的引數就知道該將哪個方法的入口調入棧中。如果只有返回值的不同,很多情況系統是不可能得到有效的判斷條件的,比如:string method();int method();如果你這樣呼叫:
method();系統當然不知道該呼叫哪個。
所以答案是,不能。
c++中兩個函式函式名相同,引數型別和引數個數也相同,但是函式型別不同,那它們是過載函式嗎?
5樓:匿名使用者
函式過載只看引數個數和型別 所以如果只是返回值相同的函式就不是過載函式了
6樓:莊政警
這樣不是過載。
函式過載要求函式的引數個數不同或者引數型別不同。
因為呼叫函式的時候無法確認函式的返回型別,所以僅返回型別不同的函式都可以匹配,這樣就造成二義性,所以僅僅是返回型別不同是不能過載的,
比如有int f(int a)
float f(int a)
int main()
7樓:匿名使用者
函式過載是是根據函式的引數列表區分函式的版本,返回值不同是不能區分的。
比如 int fun( int a,int b);
在編譯的時候,編譯器編譯函式,生成一個類似"_fun_int_int"的名稱放在庫中,以便程式呼叫的時候使用。
如果你想過載void fun( int a,int b);
生成的函式名稱也是"_fun_int_int"
函式在庫中的名稱是唯一的,就像你在程式中定義變數一樣。
這就算是重定義吧(姑且這麼說),這時編譯器該呼叫哪個函式?
8樓:
不是過載函式,編譯器應該會報錯。
c 中兩個函式函式名相同,引數型別和引數個數也相同,但是函式型別不同,那它們是過載函式嗎
函式過載只看引數個數和型別 所以如果只是返回值相同的函式就不是過載函式了 莊政警 這樣不是過載。函式過載要求函式的引數個數不同或者引數型別不同。因為呼叫函式的時候無法確認函式的返回型別,所以僅返回型別不同的函式都可以匹配,這樣就造成二義性,所以僅僅是返回型別不同是不能過載的,比如有int f int...
C語言中判斷兩個字串是否相同的方法
c語言提供了幾個標準庫函式,可以比較兩個字串是否相同。以下是用strcmp 函式比較字串的一個例子 include include void main void void main void 上例的列印輸出如下所示 str 1 is equal to str 2.str 1 is not equal...
有什麼方法能讓 兩個相愛的人不分離
天長地久的愛情就在你心中,就象很多人經常問這個世界上到底有沒有真愛一樣,其實真愛就在你心中,只要你真心的付出,執著的追求,勇敢的犧牲,真愛就在你的身上發生,天長地久的愛情就是你的愛情。我們知道,愛是一種無私的付出和犧牲,愛的回報就是對方的永遠快樂和幸福,如果你愛對方,那麼你會因為對方快樂而快樂,因為...