在實際開發中,有時候我們需要實現幾個功能類似的函式,只是有些細節不同。例如希望交換兩個變數的值,這兩個變數有多種型別,可以是 int、
float
、char
、bool
等,我們需要通過引數把變數的位址傳入函式內部。在
c語言中,程式設計師往往需要分別設計出三個不同名的函式,其函式原型與下面類似:
void swap1(int *a, int *b); //交換
int
變數的值
void swap2(float *a, float *b); //交換
float
變數的值
void swap3(char *a, char *b); //交換
char
變數的值
void swap4(bool *a, bool *b); //交換
bool
變數的值
但在c++中,這完全沒有必要。
c++
允許多個函式擁有相同的名字,只要它們的引數列表不同就可以,這就是函式的過載(
function overloading
)。借助過載,乙個函式名可以有多種用途。
引數列表又叫引數簽名,包括引數的型別、引數的個數和引數的順序,只要有乙個不同就叫做引數列表不同。
函式的過載
在面向過程的程式設計模式下,程式被劃分為資料結構 函式,這也就是那句著名的 程式 資料結構 演算法 的由來 在面向過程的思考方式下,函式名就是最好的標識,而名稱組織良好的函式集合是判斷 是否優美的乙個重要因素 在物件導向的思考方式下,一切都不同了 常見的情況下,應該為不同的函式起不同的名字,但是當這...
函式的過載
在程式設計時,有時我們要實現的是同一類的功能,只是有些細節不同 例如希望從3個數中找出其中的最大者,而每次求最大數時資料的型別不同,可能是3個整數 3個雙精度數或3個長整數 程式設計者往往會分別設計出3個不同名的函式,其函式原型為 int max1 int a,int b,int c 求3個整數中的...
函式的過載
函式的過載即對乙個函式名重新賦予它新的含義,使乙個函式名可以多用,即一物多用。求3個數中的最大數 includeusing namespace std int max int a,int b,int c long max long a,long b,long c double max double ...