利用函式模板,可以適應傳遞引數的多種資料型別。既可以實現過載函式的多型性,又能避免寫多個同名函式的繁瑣龐雜
例:定義乙個模板函式cad,實現兩個引數數的相加或者字串的連線。
#include #includetemplaten cad(n a1, n a2)
int main()
執行結果如圖:
在本例當中,申明了乙個模板函式cad。當引數為double時,兩個double型別相加(如結果i); 引數為int時,兩個int型別的引數相加(如結果m)。當傳遞的引數為string型別時候,實現了兩個字串的連線。
在函式模板中的引數型別相同,如本例中的cad,引數型別均為n,則可以正常執行;如果引數型別不一致,則會出現編譯錯誤。例如本例中的cad(1,7.6),如果沒有加入double型別標識就會出錯。而cad(1,7.6)明確的標識了模板型別為double.對引數進行強制轉換統一以後再進行計算。cad("hello,", "world!");也是一樣的。強制將指標轉化為string型別則可以使用+作為連線符。
函式模板的應用。
看了普拉達的c 書,然後看到第8章的程式設計習題,自己編了乙個程式,主要實現以下功能 利用函式模板知識,編寫乙個求得最大值得函式模板,對於輸入的double型或者int型都能夠適用,然後再編寫乙個過載的具體化模板,實現,輸入有限個字串,並且以指標字串和指標數量,作為形參,並且返回最長字串的位址。in...
模板 函式模板
c 程式設計 資料結構與程式設計方法 例15.8 利用函式過載技術,求兩個整數 字元 浮點數或字串中的較大值,需要編寫4個函式larger。而c 通過提供函式模板,簡化了過載函式據的過程。include using namespace std template type,模板的形參,用於確定函式的形...
函式模板和模板函式
1.函式模板的宣告和模板函式的生成 1.1函式模板的宣告 函式模板可以用來建立乙個通用的函式,以支援多種不同的形參,避免過載函式的函式體重複設計。它的最大特點是把函式使用的資料型別作為引數。函式模板的宣告形式為 template 返回型別 函式名 參數列 其中,template是定義模板函式的關鍵字...