阿摩線上測驗 登入

申論題資訊

試卷:112年 - 112 關務特種考試_四等_資訊處理:程式設計概要#113937
科目:程式設計
年份:112年
排序:0

題組內容

一、試回答下列有關程式設計領域的問題:(每小題 5 分,共 20 分)

申論題內容

(四)何謂多載函式(overloading function)?

詳解 (共 3 筆)

詳解 提供者:努力中(112高考上岸)

多載函式(overloading function)是指在同一個類別中,可以定義具有相同函式名稱但參數列表(參數的數量、類型或順序)不同的多個函式。這樣的函式在編譯時期根據傳入的參數的數量或類型進行選擇,以確定要呼叫的具體函式。

多載函式的目的是為了提供一個便於使用且直觀的介面,使得函式能夠以不同的方式處理不同的參數組合。這樣可以減少程式設計師的負擔,讓程式碼更容易理解和維護。

以下一個Python的例子:

class Calculator:
      def add(self, x, y):
            return x + y

      def add(self, x, y, z):
            return x + y + z

calculator = Calculator( )

result1 = calculator.add(2, 3)
print(result1) # 輸出: 5 
result2 = calculator.add(2, 3, 4)
print(result2) # 輸出: 9
 

在例子中,Calculator類別中定義了兩個名稱相同但參數列表不同的add函式。
第一個add函式接受兩個參數,而第二個add函式接受三個參數。

當我們呼叫add函式時,編譯器會根據傳入的參數數量和類型來判斷要呼叫哪個add函式。
如果傳入兩個參數,則呼叫第一個add函式;如果傳入三個參數,則呼叫第二個add函式。

 

詳解 提供者:hchungw

多載函式(Function Overloading)是物件導向程式設計中的一種特性,允許在相同作用域內存在多個同名函式,但這些函式的參數列表(數量或類型)必須不同。這意味著,函式的行為可以根據它接收的參數的數量或類型而改變。多載函式的主要目的和好處包括:
1. 提高可讀性
多載允許使用相同的函式名來執行相似但略有差異的任務,這使得程式碼更加直觀易讀。例如,print() 函式可以被多載來打印不同類型的數據,如字符串、整數或浮點數,而不需要為每種數據類型定義不同的函式名(如 printString(), printInt(), printFloat() 等)。
2. 提高靈活性
多載函式提供了一種方式,使得開發者可以根據不同的參數類型或數量,對同一操作進行細微的調整,從而使得函式更加靈活。
3. 促進接口的一致性
通過函式多載,可以保持一致的命名策略,從而使得相關功能的函式更容易被識別和使用。這對於提高程式的整體結構和可維護性是有益的。
4. 簡化函式命名
無需為每種操作的變體創建獨特的函式名,從而減少了為類似操作創建多個類似但不同名稱的函式的需要。
使用限制與規則
簽名的不同:多載的函式必須在參數類型、數量或參數順序上有所不同,這被稱為函式的簽名。
返回類型不是區分因素:僅返回類型的不同並不足以對函式進行多載。也就是說,不能有兩個或多個具有相同名稱和參數列表但僅返回類型不同的函式。
語言支持:不是所有的程式設計語言都支持多載。例如,C++ 和 Java 支持多載,而 Python 透過預設參數值和可變參數列表來實現類似的功能。
總結來說,多載函式是一種強大的語言特性,允許開發者以更自然和直觀的方式來表達程序中的操作和概念,同時也增加了程式碼的靈活性和可維護性。
詳解 提供者:Phil(112高普雙榜)

多載(overloading)是多型的其中一種類型,是指在同名函數中,透過不同資料型態的呼叫,而執行不同的函數,以取得不同的結果;例如int add(int a,int b)及float add(float a,float b),若主程式中分別有add(3,5)及add(6.5,3.5),前者因為傳入的數值為整數,因此在程式編譯階段會執行資料型態為整數的int add(int a,int b),後者因位傳入的數值為浮點數,因此在程式編譯階段會執行資料型態為浮點數的float add(float a,float b)。