C3程序猿C++教程筆記——函數模板

函數模板:
對比函數重載,函數模板,只需要一個函數就搞定

具體化:就是將我們指定的類型,單獨處理
template<> void fun<job>(job& j1, job& j2);
實例化:生成指定類型的函數定義
template void fun<job>(job&j1, job&j2);

#include <iostream>
using namespace std;

struct Node
{
	int a;
	double d;
};
//函數調用優先順序,普通函數優先模板具體化函數調用,模板具體化函數優先模板函數調用
//模板函數
template<typename T>
void fun(T a )//無法使用默認參數,調用這個函數,一定要傳參數
{
	cout << a << endl;
}
//模板具體化函數
template<> void fun<Node>(Node no)
{
	cout << no.a << "  " << no.d << endl;
}
//模板具體化函數
template<> void fun<int>(int a)
{
	cout << a << endl;
}
//普通函數
void fun(int a)
{
	cout << a << endl;
}
//實例化
template void fun<double>(double f);
int main()
{
	fun(12);
	fun(12.13);
	fun('a');
	fun("abc");
	//fun();
	system("pause");
	return 0;
}

 

發佈了59 篇原創文章 · 獲贊 15 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章