C 類模板和函式模板

2021-10-04 20:00:14 字數 1918 閱讀 5338

1、類模板

#include

using

namespace std;

//-----------------------------通用類模板---------------------------

template

<

classt1,

class

t2>

//通用模板

class

compare

//在這裡不能寫型別

;template

<

classt1,

class

t2>

//這裡必須寫

compare

::compare (

)//--------------------------類模板全特化------------------------

template

<

>

//類模板全特化

class

compare

<

char*,

char

*>

//在這裡寫上所需要的型別

;//template<> //全特化這行**不能寫!!!

compare<

char*,

char

*>

::compare()

//--------------------------類模板偏特化--------------------------

template

<

class

t2>

//類模板偏特化

class

compare

<

float

,t2>

//偏特化型別t1 特化為float型別

;template

<

class

t2>

//偏特化這裡必須要寫

compare<

float

,t2>

::compare()

//-------------------------------測試---------------------------------

intmain

(int argc,

char

*ar**)

2、函式模板

#include

#include

using

namespace std;

//--------------------------函式模板---------------------------------

template

<

classt1,

class

t2>

bool

test

(t1 t1, t2 t2)

//--------------------------模板全特化--------------------------------

template

<

>

//因為字串比較不能通過直接相等來比較,的特化一下

bool test <

char

*>

(char

* t1,

char

* t2)

//標明特化型別

//----------------------------測試------------------------------------

intmain

(int argc,

char

*ar**)

else

return0;

}

C 函式模板和類模板

一 函式模板 c 提供了函式模板 function template 所謂函式模板,實際上是建立乙個通用函式,其函式型別和形參型別不具體指定,用乙個虛擬的型別來代表。這個通用函式就稱為函式模板。凡是函式體相同的函式都可以用這個模板來代替,不必定義多個函式,只需在模板中定義一次即可。在呼叫函式時系統會...

函式模板和類模板(C )

所謂函式模板,實際上是建立乙個通用函式,其函式型別和形參型別不具體指定,用乙個虛擬的型別來代表。這個通用函式就稱為函式模板。函式模板和普通函式的區別 函式模板不允許自動型別轉化,普通函式能夠進行自動型別轉換 函式模板和普通函式在一起呼叫的規則 1 函式模板可以像普通函式一樣被過載 2 c 編譯器優先...

C 函式模板和類模板

一 函式模板 1.概念 實際是建立乙個模型,然後根據這個模板去例項化一些物件,它的函式型別和形參型別不具體指定,用乙個虛擬的型別來代表,這個通用的函式就稱為函式模板,只要是函式體相同的函式都可以用這個模板來代替,不必定義多個函式,只需要在模板中定義一次,在呼叫函式時,編譯器會根據實參的型別對函式進行...