* 何謂 function name overloading? 寫一個 function 可把傳入之兩整數對調 也寫一個 function 可把傳入之兩double數對掉 (1) 在 C 中: 要用不同名, 且要注意寫法, 還有用法! void swap(int *x, int * y) { int temp; temp = *x; *x = *y; *y = *x; } void swap22(double *x, double * y) { double temp; temp = *x; *x = *y; *y = *x; } int m,n; double a,b; int main() { m=2; n=3; a=38.49; b=49.38; swap(&m, &n); /* ... */ swap22(&a, &b); /* ... */ } ======================= (2) 在 C++ 中: 函數可以同名, 且參數傳遞可用 by Reference (注意 函數寫法與用法皆不同於C語言) void swap(int &x, int & y) { int temp; temp = x; x = y; y = x; } void swap(double &x, double & y) { double temp; temp = x; x = y; y = x; } int m, n; double a, b; int main() { m=2; n=3; a=38.49; b=49.38; swap(m, n); /** 會叫到 int 的那個 swap( ) **/ /* ... */ swap(a, b); /* 會叫到 double 的那個 swap( ), 此即 是 function name overloading */ /* ... */ }