C 模板學習 二)

2021-10-22 19:01:53 字數 1619 閱讀 1731

模板的注意事項:

自動型別推導,必須推導出一致的資料型別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 模板學習

模板定義 模板就是實現 重用機制的一種工具,它可以實現型別引數化,即把型別定義為引數,從而實現了真正的 可重用性。模版可以分為兩類,乙個是函式模版,另外乙個是類模版。類模板 允許使用者為類定義一種模式,使得類中的某些資料成員 某些成員函式的引數 某些成員函式的返回值,能夠取任意型別 包括系統預定義的...