1-11 函式超載


阿瑟 發表



函式超載 (function overload) 是一種讓單一函式能夠接受多類型輸入的技巧.

*注意: C++所有語法大小寫有差. 如果您在執行時發現中文無法顯示請自行將程式修改成英文.

*注意: 如果您執行程式後, 程式視窗會自動關閉的話, 請至MS-DOS模式重新執行程式, 或是在void main()最底端加上system("PAUSE");來暫停程式.



什麼是函式超載 (function overload)呢? 說起來這個其實是比較顛覆傳統設計理念的一個設計方式.

說簡單一點, 函式超載就是多個函式用同樣的名字. 但是這也有一定的規定可循, 函式必須為同一種類型 (如果一個函式用void, 超載的其他函式就不能夠是回傳函式)

先來看個簡單的範例:



#include <iostream.h>
#include <stdlib.h>

void fun(int x);
void fun(char x);
void fun(double x);


void main()
{
   fun(3);
   fun('a');
   fun(3.14);

   system("PAUSE");

}  

void fun(int x)
{
   cout << "你輸入了整數 " << x << endl;
}

void fun(char x)
{
   cout << "你輸入了字元 " << x << endl;
}

void fun(double x)
{
   cout << "你輸入了浮點數 " << x << endl;
}


編譯並且執行這隻程式.

你會發現呼叫同樣的一個函式, 因為輸入的不同, 而會呼叫不同的超載函式.

超載函式最大的好處當然就是讓單一函式呼叫能夠接受不同的輸入.

這個功能的效果在這個範例中或許不是那麼的明顯, 等到進入類別 (classes)以後, 在設計較複雜的初始函式 (constructor)的時候, 函式超載就會拍上用場了.

最後更新日期: 6/1/2003 1:04:15 PM