首先:
區分 非模板函數 模板函數 具體化
非模板函數就是沒有template<typename Type>
模板函數就是有template<typename Type>在前面的
template<typename T>
void Swap(T &a, T &b)
{
balabala
}
具體化:
template <> void Swap<job>(job &1 ,job &2)
{
和前面的函數模板的實現是不一樣的
}函數
接着,看看實例化和具體化
實例化: 使用模板的特定類型生成函數定義的時候,獲得的就是模板的實例
例如:
在main()裏面
template void Swap<char>(char&,char&);這個就是顯示實例化
在後面能夠這樣使用:
char g,h;
Swap(g,h);模板
也能夠不用顯示實例化,而使用隱式實例化:
short a,b;
Swap(a,b);這個就是隱式實例化生成