C 中函式模板的用法詳細解析

2021-07-26 18:00:20 字數 1019 閱讀 2590

所謂函式模板實際上是建立乙個通用函式,其涵涵素型別額形參型別不具體指定,用乙個虛擬的型別來代表,這個通用函式就稱為函式模板

定義

我們知道函式的過載可以實現乙個函式名多用,將功能相同或者類似函式用同乙個名來定義。這樣可以簡化函式的呼叫形式,但是程式中,仍然需要分別定義每乙個函式。

c++提供的函式模板可以更加簡化這個過程。

所謂函式模板實際上是建立乙個通用函式,其涵涵素型別額形參型別不具體指定,用乙個虛擬的型別來代表,這個通用函式就稱為函式模板。

凡是函式體相同的函式都可以用這個模板來代替,不必定義多個函式,只需要在模板中定義一次即可。在呼叫函式時,系統會根據實參的型別來取代模板中的虛擬型別,從而實現了不同函式的功能。

定義函式模板的一般形式為:

複製**

**如下:

template

通用函式定義

或者複製**

**如下:

template

通用函式定義

下面,我們來對比一下使用普通函式,使用函式的過載,以及使用函式的模板時的情況:

該段**用於解決不用的型別資料相加的問題

使用多個普通函式

**********===示例**1.1**********====

複製**

**如下:

#include

using namespace std;

int int_add(int a,int b)                              //定義函式int_add用於int型資料相加  

double dou_add(double a,double b)     //定義函式dou_add用於double型函式相加

int main()  

double n_add(double a,double b)    //定義函式n_add用於double型函式相加

int main()  

int main()  

C 中函式模板的用法詳細解析

定義 我們知道函式的過載可以實現乙個函式名多用,將功能相同或者類似函式用同乙個名來定義。這樣可以簡化函式的呼叫形式,但是程式中,仍然需要分別定義每乙個函式。c 提供的函式模板可以更加簡化這個過程。所謂函式模板實際上是建立乙個通用函式,其涵涵素型別額形參型別不具體指定,用乙個虛擬的型別來代表,這個通用...

C 中的函式模板

我們在定義函式時,可以通過定義函式模板,來簡化一些功能相同而資料型別不同的函式的定義和呼叫過程。c 中的函式模板 對於類的宣告來說,也有同樣的問題。有時,有兩個或多個類,其功能是相同的,僅僅是資料型別不同,如下面語句宣告了乙個類 class compare int int max int min f...

C 中的函式模板

模板的意義 對型別也可以進行引數化了 template 定義乙個模板引數列表,typename也可以用class替換 bool compare t a,t b 特例化 template bool compare const char a,const char b bool compare const...