C++模板类中的成员函数以及模板函数在类外定义的方式

  • Post author:
  • Post category:其他


如下模板类:

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)
{
    //....
}



版权声明:本文为Jxianxu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。