函數重載
https://github.com/hongwangli/study_cpp/blob/master/test_010_reload_template.cpp 重載是為了減少麻煩才產生的。 打個比方,你為了要計算兩個數的和,寫了一個函數,如下:
int intSum(int nA,int nB) { return (nA+nB); } //這個只是計算了兩個整形的和,或許你還要寫一個計算浮點數和的函數: float floatSum(float fA,float fB) { return (fA+fB); } //或許你還需要計算一個浮點數和一個整形的和,還需要一個函數: float float_intSum(float fA,int nB) { return (fA+(float)nB); }甚至,如果你用C++的話,你還會需要一些計算對象之間的和,等等。。。。 當寫了這么多的函數,在實際運用中根據需要選擇不同的函數來計算某些類型的和,我想你也記不住這么多函數。用重載吧,只需要記住一個函數名就行了。 /////////////////////////////////////////////////////////////////////////////
//函數Fun_Sum的重載 int Fun_Sum(int A,int B) { return (A+B); } float Fun_Sum(float A,float B) { return (A+B); } double Fun_Sum(double A,double B) { return (A+B); } UINT Fun_Sum(UINT A,UINT B) { return (A+B); }//等等,可以的話這種重載寫數十個也不會重復。 //好了,以后你想要計算某兩個類型的和時(可以是不同類型),不需要去想該用哪個計算和的函數,統統調用函數Fun_Sum就行了,至于到底是其中的哪一個函數在被調用,讓編譯器去傷腦筋吧。 重載函數的參數個數、參數類型、參數順序、這三者中至少要有一個不同,才能進行函數重載,因為調用重載函數就是要根據這個來區分具體的調用哪個函數,而函數的返回值可以相同可以不同
函數模版
template<typename T> 通用函數定義或template<class T> 通用函數定義但是用函數模板只能用于 函數的參數個數相同而類型不同的情況,如果參數個數不同,則不能使用函數模板。
新聞熱點
疑難解答
圖片精選