模板是 C++ 中相對較新的一個特性。模板使程序員能夠快速建立具有類型安全的類庫集合和函數集合,它的實現(xiàn)方便了更大規(guī)模的軟件開發(fā)。
我們?yōu)槭裁匆褂媚0迥兀?BR> 首先我們分析這樣兩種情況:
第一種情況是關于函數??疾靸蓚€函數,一個交換兩個整型數,另一個交換兩個浮點數。兩個 swap() 的主體行為是一樣的,無非一個是處理 int 型的,一個是處理 float 型的。所以可以通過重載函數來實現(xiàn)。兩個函數分別如下:
void swap(int &a,int &b)
{
int temp=a;
a=b;
b=temp;
}
swap(float&a,float &b)
{
float temp=a;
a=b;
b=temp;
}
但是有了模板后,重載就不必要了。
第二種情況是關于類。對于 student 類的鏈表,我們有:
class student
{
//……..
private:
float a;
}
class studentlist
{
public:
studentlist();
void add(student&);
void remove(student&);
~studentlist();
private:
//….
}
該鏈表類將 student 類對象作為鏈表結點,進行插入、刪除和查找處理。
同樣如果想處理其他的任何一種類類型的對象作為結點的鏈表,我們必須重新對這鏈表進行定義。因為所定義的類的行為沒有任何變化,只是處理的結點之類型有所不同,所以使得重新定義鏈表的工作很煩人。但是模板可以解決這個問題。下面就來講一講模板的定義和使用。
我們?yōu)槭裁匆褂媚0迥兀?BR> 首先我們分析這樣兩種情況:
第一種情況是關于函數??疾靸蓚€函數,一個交換兩個整型數,另一個交換兩個浮點數。兩個 swap() 的主體行為是一樣的,無非一個是處理 int 型的,一個是處理 float 型的。所以可以通過重載函數來實現(xiàn)。兩個函數分別如下:
void swap(int &a,int &b)
{
int temp=a;
a=b;
b=temp;
}
swap(float&a,float &b)
{
float temp=a;
a=b;
b=temp;
}
但是有了模板后,重載就不必要了。
第二種情況是關于類。對于 student 類的鏈表,我們有:
class student
{
//……..
private:
float a;
}
class studentlist
{
public:
studentlist();
void add(student&);
void remove(student&);
~studentlist();
private:
//….
}
該鏈表類將 student 類對象作為鏈表結點,進行插入、刪除和查找處理。
同樣如果想處理其他的任何一種類類型的對象作為結點的鏈表,我們必須重新對這鏈表進行定義。因為所定義的類的行為沒有任何變化,只是處理的結點之類型有所不同,所以使得重新定義鏈表的工作很煩人。但是模板可以解決這個問題。下面就來講一講模板的定義和使用。

