C 程式設計之函式模板

2021-07-24 05:08:03 字數 981 閱讀 7804

c++程式設計之函式模板

1、函式之模版出現

在調換兩個數值之間的函式寫法上,由於有int、float、double等不同的資料型別,如下例:

void swapvalues(int& num1, int& num2 )

上例只能適合於int 型別的變數,假如要呼叫double型別的兩個數調換,又要重寫上面的函式(把上面int 的位置全改為double)。可以達到目的,但不高效。我們需要一種能交換各種資料型別變數的函式定義,它的表示方法如下所示:

void swapvalues( typedata& var1, typedata& var2)

在c++語言中,上述函式定義方式是可行的。我們可以定義乙個適用於各種資料型別變數的函式。 

2、函式模版語法

模版定義和函式宣告以如下方式:

template// class 可以用typename關鍵字,實際上標準模版就是typename,只是大家習慣class

通常稱為模版字首,它告訴編譯器函式定義或函式宣告是乙個模版,t表示乙個型別引數。

3、函式模版之示例

C 泛型程式設計之函式模板

模板是泛型程式設計的基礎,包括函式模板和類模板兩類 其作用是建立乙個通用函式,該函式的返回值和形參型別不具體而用乙個虛擬型別代表,達到簡化的目的 語法templatet 為通用資料型別 如要實現兩數交換的函式 int型別的寫法如 void swapint int a,int b 而如果要交換doub...

C 泛型程式設計之函式模板

泛型程式設計是c 的另一種程式設計思想,主要用到技術是模板。c 提供兩種模板機制 函式模板和類模板 一 函式模板 語法 template函式宣告或定義解釋 template 宣告建立模板 typename 表面其後面的符號是一種資料型別,可以用class代替 t 通用的資料型別,名稱可以替換,通常為...

C 泛型程式設計之函式模板案例

案例描述 利用函式模板封裝乙個排序函式,可以對不同資料型別的陣列進行排序。排序規則是從大到小,排序演算法為選擇排序 分別用char和int陣列進行測試 include iostream include using namespace std 實現通用 對陣列進行排序 規則 從大到小 演算法 選擇排序...