模版方法
在3中我已經說過了,C++標準庫是基于模版技術構建的,complex是模版,string是模版,vector是模版,就連I/O也是模版。
在C++標準庫中模版共分為2中,一種是類模板,還有一種是函數模版
模版的一般定義方式
template <類型型參表> 返回類型 類名 <類型名表>::成員函數1(型參表)
{
???成員函數1定義體
}
模版函數的一般定義方式
template <類型型參表>返回類型 函數名(型參表)
{
???函數定義體
}
有一句話說的比較好,一個類模版描述的是一個無限的類的集合,而程序員所看到的是這些類中的最普遍的地方。那么,C++也支持無限集合函數的概念了。
下面是一個模版函數的定義實例:
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;定義了