模版方法
在3中我已經(jīng)說(shuō)過(guò)了,C++標(biāo)準(zhǔn)庫(kù)是基于模版技術(shù)構(gòu)建的,complex是模版,string是模版,vector是模版,就連I/O也是模版。
在C++標(biāo)準(zhǔn)庫(kù)中模版共分為2中,一種是類模板,還有一種是函數(shù)模版
模版的一般定義方式
template <類型型參表> 返回類型 類名 <類型名表>::成員函數(shù)1(型參表)
{
???成員函數(shù)1定義體
}
模版函數(shù)的一般定義方式
template <類型型參表>返回類型 函數(shù)名(型參表)
{
???函數(shù)定義體
}
有一句話說(shuō)的比較好,一個(gè)類模版描述的是一個(gè)無(wú)限的類的集合,而程序員所看到的是這些類中的最普遍的地方。那么,C++也支持無(wú)限集合函數(shù)的概念了。
下面是一個(gè)模版函數(shù)的定義實(shí)例:
Example Code:
template <class T>
T max(T a1,T a2,T a3)
{
???T temp;
???if((a1?> a2) && (a1 >a3))?{temp = a1;}
???else if((a2 > a1) && (a2 > a3)){temp = a2;}
???else???{temp = a3};
???return a3;
}
就可以使用max(100,200,300);
類模版的一般定義方式
template <class T>
class A:
{
???T* x;
???int size;
public:
???T& operator[](int);
};
就可以使用A<int> a;定義了