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...