暂时学到函数模板和类模板,总结一下。都包含了template意思是“模板”,<typename T>或者<class T>,其中typename和class都是表示“类型名”二者可以互换,这个在函数模板和类模板中都是一样的,“T”是任意取得一个类型参数,是一个虚拟的类型名。
#include<iostream>
using namespace std;
template <typename T>
class compare
{
public:
compare(T x,T y):a(x),b(y){}
T max();
T min();
private:
T a;
T b;
};
template <typename T>
T compare<T>::max()
{
return a>b?a:b;
}
template <typename T>
T compare<T>::min()
{
return a>b?b:a;
}
int main()
{
compare<int> m(2,3);
cout<<m.max()<<endl;
compare<char>n('a','b');
cout<<n.min()<<endl;
return 0;
}
这段代码中可以看到在类外定义函数的时候都加了 template<typename T> T compare<T>::"函数名" 这个是类模板最大的一个特点