函式模板基本語法

2021-10-10 05:06:39 字數 2699 閱讀 5368

template

<

class

t>

intmyadd

(t a,t b)

intmyadd

(int a,

char c)

void

test02()

函式模板允許過載

程式執行時編譯器先索引普通函式,之後才呼叫模板,如果要考慮模板函式優先,可以呼叫時加上語句

myadd<

>

(a,b)

;

編譯器

彙編器將***.s彙編檔案鏈結生成目標檔案,linux下是.o,在windows下是.obj

聯結器將目標檔案連線生成可執行檔案.exe

template

<

class

t>

class

person

void

show()

};void

test01()

函式模板案例

#include

using

namespace std;

template

<

class

t>

void

printarray

(t* arr,

int len)

cout << endl;

}template

<

class

ty>

void

mysort

(ty* arr,

int len)}}

}int

main

(void);

//陣列長度

int len =

sizeof

(arr)

/sizeof

(int);

cout <<

"排序之前:"

<< endl;

printarray

(arr, len)

;//排序

mysort

(arr, len)

;//排序之後

cout <<

"排序之後:"

<< endl;

printarray

(arr, len)

;char charr=

; len =

sizeof

(charr)

/sizeof

(char);

mysort

(charr, len)

;printarray

(charr, len)

;system

("pause");

return0;

}

#include

using

namespace std;

template

<

class

t>

class

animal

void

jiao()

public

: t mage;};

template

<

class

t>

class

cat:

public animal

;//兩種形式均可

cat(t a)};

intmain()

#include

using

namespace std;

template

<

class

t>

class

person

;template

<

class

t>

person

::person

(t age, t id)

//類外實現建構函式格式

template

<

class

t>

void person

::show()

//類外實現類函式格式

void

test07()

intmain()

#include

using

namespace std;

template

<

class

t>

class

person

;template

<

class

t>

person

::person

(t age, t id)

//格式

//過載左移運算操作符

template

<

class

t>

ostream&

operator

<<

(ostream& os,person

& p)

void

test07()

intmain()

函式模板的基本語法

實際上是建立乙個通用函式,其函式型別和形參型別不具體制定,用乙個虛擬的型別來代表。這個通用函式就成為函式模 板 c 提供兩種模板機制 函式模板和類模板 類屬 型別引數化,又稱引數模板 使得程式 演算法 可以從邏輯上抽象,把被處理的物件 資料 型別作為引數傳遞。用模板是為了實現泛型,可以減輕程式設計的...

02函式模板基本語法

template 宣告建立模板 typename 表面其後面的符號資料型別 可以用class代替 t 通用資料型別 名稱可以替換 通常為大寫字母 include using namespace std template typename t typename換作class也可 void myswap...

C 語法小記 函式模板

函式模板 建議 將返回值型別作為第乙個模板引數 1 include 2 include 34 using namespace std 56 template7 void swap t l,t r 813 14 template15 t add t l,t r 1620 21int add int l...