函數重載是許多編程語言的一個特性,在這些語言中,可以用相同的名稱創建多個方法,但使用不同的輸入參數或返回類型。這是面向對象編程中的一個常見特性;尤其是構造函數可能有多個不同的重載變量。本質上,當兩個函數做的事情...
函數重載是許多編程語言的一個特性,在這些語言中,可以用相同的名稱創建多個方法,但使用不同的輸入參數或返回類型。這是面向對象編程中的一個常見特性;尤其是構造函數可能有多個不同的重載變量。本質上,當兩個函數做的事情非常相似,并且可以使用多種類型的輸入時,函數重載非常有用。構造函數很容易重載,因為它們沒有指定顯式的返回類型,所以簡單地更改構造函數的輸入參數將是有效的重載。在面向對象的計算機編程中,當一個或多個函數同名但參數不同,稱為函數重載。函數重載的第一種方法是更改其輸入參數。例如,可以考慮一個名為“add”的函數,它的輸入是兩個整數。這個函數的作用相當明顯意思是要求兩個整數的和。但是,如果要求兩個浮點數或十進制數的和,這個函數就不適用了。因此,需要第二個重載函數,定義為一個名為“add”的函數,它的輸入是兩個浮點。這些函數的作用基本相同,但是函數重載是必要的,因為它們的輸入是顯著不同的。函數重載的第二種方法是同時改變它的輸入參數和返回類型。用前面的例子,我們可以考慮兩個重載的“add”函數是否都有一個void返回類型;也就是說,這仍然是有效的函數重載,但這兩個方法的返回類型也可以更改在另一個有效的重載實例中,接受兩個整數的“add”函數可以返回該整數和,而接受兩個十進制數的“add”函數可以返回該十進制數和。但是,僅更改函數的返回類型就不能被視為有效的函數重載。只更改返回值函數的類型會導致歧義,因為方法簽名中不清楚需要哪種返回類型。參數也可能定義模糊,因此正確調用重載函數非常重要。例如,如果一個重載函數的輸入參數為整數,另一個參數是十進制數的,很容易有人不小心調用十進制數函數而不是整數函數,反之亦然,因為它們有相同的名稱。如果可能的話,應該避免這樣的模糊參數,如果不能的話,應特別注意確保在適當的時間調用適當的重載函數。函數重載對于創建具有不同輸入類型的相關函數非常有用,它給了代碼很大的靈活性。關于重載函數的最后一個考慮是,充分的注釋是必不可少的。雖然通過不同的輸入參數可以清楚地看出重載函數的哪個版本適合特定的情況,但可能并不總是很清楚該函數與它的不同之處其他超負荷合作伙伴
-
發表于 2020-08-06 12:35
- 閱讀 ( 665 )
- 分類:電腦網絡