如果需要多個將同乙個演算法用於不同型別的函式,請使用模版
函式模版:要讓編譯器知道程式需要乙個特定形式的交換函式,只需在程式中使用swap()函式即可,編譯器將檢查所使用的引數型別,並生成相應的函式,
1. template
void swap(anytype &a, anytype&b)
anytype temp;
temp = a;
a = b;
b = temp;
tmplate
void swap(t &a, t &b)
t temp;
temp = a;
a = b;
b = temp;
第一行指出,建立乙個模板,並將型別命名為anytype, 關鍵字template 和 typename是必須的,除非可以使用關鍵字class代替typename、另外。必須使用尖括號。型別名可以任意選擇(這裡是anytype)。
模版並不建立任何函式,而只是告訴編譯器如何定義函式,需要交換int的函式時,編譯器將按模板模式建立這樣的函式,並用int代替anttype,同樣,需要減緩double函式時,編譯器將按照模板模式建立這樣的函式,並用double代替anytype。
C 之函式模版
函式模版是通用的函式描述,有時候也被稱為引數化型別。建立模版如下 template void swap any a,any b template void swap job job1,job job2 void show job j int main template void swap job j...
C 函式模版分離編譯
1.函式模版的編譯模式分兩種 完全包含編譯模式和區域性編譯模式 需要用export關鍵字 2.不同的編譯器對這兩種編譯模式的支援各不相同,但一般都支援完全包含編譯模式,具體支援情況需要參照具體使用的編譯器文件 模版函式和普通函式在使用的時候有一定的區別 1 普通函式在使用的原始檔中直接include...
4 7 C 函式模版
c 提供了函式模板 function template 所謂函式模板,實際上是建立乙個通用函式,其函式型別和形參型別不具體指定,用乙個虛擬的型別來代表。這個通用函式就稱為函式模板。凡是函式體相同的函式都可以用這個模板來代替,不必定義多個函式,只需在模板中定義一次即可。在呼叫函式時系統會根據實參的型別...