学会思考
刻意练习

成员函数的模板:

普通类的成员函数,也可以定义为函数模板,如:

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); }//类的外部定义

 

posted on 2017-04-11 22:06  Worty  阅读(265)  评论(0编辑  收藏  举报