函式模板是我個人認為不在物件導向內容中的乙個非常好用的東西,所以我覺得非常有必要和大家一起分享一下。
首先不同於過載函式,過載函式的功能是一組函式他們的引數型別不同,或者引數個數相同,,實現的功能相似,但是本質他們是多個函式
而函式模板則可以實現型別的泛型化,對於模板中函式,在具體執行的過程中依據實際引數的型別生成相應的模板函式。這個過程則被稱作模板的例項化。
上面這麼多通俗一點的說法就是比如乙個函式
int max(int x,int y)
在使用了函式模板以後,int x,int y包括函式型別的int都可以改為其他型別,float,double,bool或者別的,在學過物件導向之後甚至可以使用自己所建立的型別,非常方便。
接下來介紹一下如何寫函式模板
templatet max(t x, t y)
在使用的時候那麼直接呼叫max('a','b'),max(1,2),max(3.3,4,4)就可以了
此外函式模板中所指定的t甚至不需要統一
templatet1 sum(t2 a,t3 b)
但是這樣寫不知道大家有沒有發現乙個問題,如果我直接呼叫sum('a',2)系統他並不知道函式返回值應該是那個型別,因此我們在進行例項化的時候,如果是這樣一定要注意制定好型別,在之後的類模板中這也是非常重要的。呼叫時候應該這樣使用
sum('a',2);就可以了
模板 函式模板
c 程式設計 資料結構與程式設計方法 例15.8 利用函式過載技術,求兩個整數 字元 浮點數或字串中的較大值,需要編寫4個函式larger。而c 通過提供函式模板,簡化了過載函式據的過程。include using namespace std template type,模板的形參,用於確定函式的形...
函式模板和模板函式
1.函式模板的宣告和模板函式的生成 1.1函式模板的宣告 函式模板可以用來建立乙個通用的函式,以支援多種不同的形參,避免過載函式的函式體重複設計。它的最大特點是把函式使用的資料型別作為引數。函式模板的宣告形式為 template 返回型別 函式名 參數列 其中,template是定義模板函式的關鍵字...
函式模板和模板函式
1.函式模板的宣告和模板函式的生成 1.1函式模板的宣告 函式模板可以用來建立乙個通用的函式,以支援多種不同的形參,避免過載函式的函式體重複設計。它的最大特點是把函式使用的資料型別作為引數。函式模板的宣告形式為 template 返回型別 函式名 參數列 其中,template是定義模板函式的關鍵字...