C 語言筆記系列之二十 模版

2021-06-22 16:02:10 字數 1169 閱讀 4396

1.任意輸入兩個數x和y,輸出最大值max。

int max(int x, int y)

2.函式模版

(1)用一種或者多種通用型別去表示函式——函式模版。

(2)函式模版由於沒有具體的資料型別,所以函式模版不可執行。

(3)作用:模板就是實現**重用機制的一種工具,它可以實現型別引數化,即把型別定義為引數, 從而實現了真正的**可重用性。模版可以分為兩類,乙個是函式模版,另外乙個是類模版。

注:函式模版在呼叫時必須用具體的型別來替代,使之轉換為乙個具體函式。

3.函式模版的定義:

用來說明乙個通用型別t。

b.class t只用來表示一種型別,也可以表示多個通用型別:

4.函式模版的呼叫

(1)將函式模版作為乙個函式呼叫。

(2)系統將自動按照呼叫表示式實參的型別來替代函式模版中的通用型別,使之轉化為乙個具體函式然後執行。

example 1

#include

template

t max(t x, t y)

int main()

example 2

#include

template

void exchange(t &x, t &y, t &z)

if(x>z)

if(y>z)

}5.函式模版的過載

(1)函式模版允許隱性型別轉換。

(2)函式模版過載時不允許過載為乙個模版——函式模版的過載只可以是乙個具體的顯性函式。

(3)函式模版的過載只可以在函式模版不可呼叫時,系統將自動的通過隱式型別轉換後呼叫函式模版時過載。

example 3

#include

template

t max(t x, t y)

double max(int x, double y)

int main()

t getx()

t gety()

};類模板的具體化實現:

(1)通過類模板建立物件時由具體型別替代模版型別。

(2)類模版物件的定義

類名《具體型別》物件名(初始化列表)

若有多個通用型別必須表示多個具體型別

例如:tany objint(3, 4);

tany objdouble(3.4, 5.6);

c 模版筆記

一 一般模板函式形式 include using namespace std templae 若有多個參引數可如此定義即可 template 定義不定型別 const type mymax const type valueone,const type valuetow int main 上述 在編譯...

C 筆記 模版

模版 是為了讓 更加通用,使 不受資料型別的影響。減少 冗餘。模版將資料型別當作乙個引數進行傳遞。包括函式模版和類模板。函式模版 定義乙個比較大小的函式模版 template 也可以寫成 template type max type a,type b intmain 模版會根據傳遞的實參自動進行資料...

c語言學習筆記二十

makefile基礎 基本規則 一般的程式都是由多個原始檔編譯鏈結而成,而這些原始檔的處理通常是由makefile來處 理示例 如下 test29.h ifndef main h define main h 宣告點型別 typedef struct point item t 宣告最大列和行變數 de...