成员函数的模板:
普通类的成员函数,也可以定义为函数模板,如:
class normal_class
{
public:
int value;
template<typename T> void set(T const &v)
{
value = int(v);//在类内定义
}
template<typename T> T get();
};
template<typename T> T normal_class::get() {return T(value);}//在类外部定义
类模板的成员函数,也可以有额外的模板参数,如:
template <typename T0>
class A
{
public:
T0 value;
template<typename T1> void set(T1 const&v)
{
value = T0(v);//在类的内部定义
}
template<typename T1>T1 get();
}; template<typename T0> template<typename T1>
T1 A::get() { return T1(value); }//类的外部定义