如下模板类:
template<typename T1>
class Base
{
public:
Base(T1 t1);
T1 GetNum();
template<typename T2> void show(T2 t2);
private:
T1 num;
};
构造函数类外定义:
template<typname T1>
Base<T1>::Base(T1 t) //注意是Base<T1>
{
num = t;
}
普通成员函数类外定义:
template<typename T1>
T1 Base<T1>::GetNum()
{
return num;
}
模板成员函数类外定义:
//需要两个template声明
template<typename T1> //for class Base
template<typename T2> // for show()
void Base<T1>::show(T2 t2)
{
//....
}