模板的注意事項:
自動型別推導,必須推導出一致的資料型別t,才可以使用
模板必須要確定出t的資料型別,才可以使用
template
<
typename t>
void
myswap
(t& a, t& b)
void
test()
自動推導資料型別不一樣會報錯,如下
模板必須要確定出t的資料型別才可以使用
template
<
typename t>
void
func()
void
test()
此時t不知道該返回哪種資料型別,會報錯
此時可以給t指定乙個型別
template
<
typename t>
void
func()
void
test()
函式模板小例子。利用函式模板封裝乙個排序的函式,可以對不同資料型別陣列進行排序
排序規則從大到小,排序演算法為選擇排序
分別利用char陣列和int陣列進行測試
#include
using
namespace std;
//利用函式模板封裝乙個排序的函式,可以對不同資料型別陣列進行排序
//排序規則從大到小,排序演算法為選擇排序
//分別利用char陣列和int陣列進行測試
//交換函式的模板
template
<
typename t>
void
myswap
(t& a, t& b)
//排序模板
template
<
typename t>
//利用選擇排序對陣列進行從大到小排序
void
mysort
(t arr,
int len)}if
(max != i)
//如果最大數的下標不是i,交換兩者}}
template
<
typename t>
void
printarray
(t arr,
int len)
cout << endl;
}void
test01()
void
test02()
;int num =
sizeof
(intarr)
/sizeof
(int);
mysort
(intarr, num)
;printarray
(intarr, num);}
intmain()
C 學習(十八) 模板(二)
模板機制 模板的侷限性 模板並不是真正的通用的 對於一些自定義資料型別,模板有時候不能實現效果 可以通過具體化實現對自定義資料型別進行操作。include include using namespace std class person string m name int m age protect...
C 之模板 模板的學習 學習模板
c 之模板 模板學習 學習模板 模板就是建立通用的模具,大大提高復用性 函式模板 c 提供兩種模板機制函式模板和類模板 函式模板語法 函式模板作用 建立乙個通用函式,其函式返回值型別和形參型別可以不具體制定,用乙個虛擬的型別來代表 語法 template typename t 函式宣告或定義解釋 t...
C 模板學習
模板定義 模板就是實現 重用機制的一種工具,它可以實現型別引數化,即把型別定義為引數,從而實現了真正的 可重用性。模版可以分為兩類,乙個是函式模版,另外乙個是類模版。類模板 允許使用者為類定義一種模式,使得類中的某些資料成員 某些成員函式的引數 某些成員函式的返回值,能夠取任意型別 包括系統預定義的...