c++_模板基礎知識

模板:

1,函數模板
template <class(typename) T, ...(非類型參數,int var)>
T add(T &a)
{
//函數體
}
非類型參數只能是,整型,指針,引用。以上T可以有對應的默認值

2,類模板
template <class T>
class A
{
//類體
}
template <class T,...>
void A<T>::func()
{
//函數體
}
以上:可以有非類型參數,T可以有默認值。
 

3,友元函數模板如下。如下包括模板,友元,重載,可以好好理解一下。

 

template <class T = int>
class A
{
	public:
		A(int);
		template <class M, class N>
		friend M operator+(A<M> &, A<N> &);

	private:
		T p;
		
};
template <class H>
A<H>::A(int num)
{
	p = num;
}

template <class M, class N> 
M operator+(A<M> &c, A<N> &d)
{
	return (c.p+d.p);
}

int main(int argc, char *argv[])
{
	A<char> a(65);
	A<int> b(3);
	
	cout << a+b << endl;

	return 0;
}

注意:T,H,M,N都是形參名。
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章