函式模板與類模板

2021-07-10 22:40:00 字數 985 閱讀 9927

1.函式模板的作用

void swap(int &a ,int &b)//交換兩個int型別變數

void swap(char &a ,char &b)//交換兩個char型別變數

void swap(float &a ,float &b)//交換兩個float型別變數

c++中必須定義三個函式, 否則 如果只定義乙個int型別的函式, 實參傳入char型別和float型別的變數會提示找不到函式。

如果想用乙個函式解決,就可以使用函式模板

定義

templatevoid swap(t&a ,t &b)

呼叫方式:

方式1 顯示呼叫

swap(a,b);

swap(a,b);

swap(a,b);

方式2 自動型別推導

swap(a,b); //會根據傳入的變數型別 自動的確定呼叫哪個函式

2.類模板

class  ctest1

}class ctest2

}class ctest3

}

上面的三個類,完全可以定義乙個類解決

方式1

類的宣告和實現在一起

template

t>

class

ctest

}

方式2

類的宣告和實現分開

template

t>

class

ctest

template t>

void ctest

::swap(t &a ,t &b)

普通的類宣告和實現可以放到兩個檔案中,比如乙個放到cpp檔案,另乙個放到.h檔案中。但是需要注意類模板 的宣告和實現,不能分開成兩個檔案 否則編譯不通過。

函式模板與類模板(模板類)

什麼是泛型程式設計?泛型程式設計 編寫與型別無關的通用 是 復用的一種手段。模板是泛型程式設計的基礎。模板分為函式模板和類模板 下面我們就來說說函式模板 函式模板與型別無關,在使用時被引數化,根據實參型別產生函式的型別版本 格式 template 返回值型別 函式名 引數列表 templatet1 ...

模板 函式模板與類模板

模板 template 是乙個將資料型別引數化的工具。模板分為函式模板和類模板兩種。在定義模板的時候不說明某些函式引數或者資料成員的型別,而將它們的資料型別作為模板引數。在使用模板時根據實參的資料型別確定模板引數即資料型別,從而得到模板的乙個例項。函式模板 function template 函式模...

函式模板與類模板

c 提供的函式模板可以定義乙個對任何型別變數進行操作的函式,從而大大增強了函式設計的通用性。使用函式模板的方法是先說明函式模板,然後例項化成相應的模板函式進行呼叫執行。函式模板的一般說明形式如下 template 模板形參表 返回值型別 函式名 模板函式形參表 其中,模板形參表 可以包含基本資料型別...