C++分离类模板的声明和定义

时间:2021-09-06 23:16:59
成员函数在体外的定义格式为:
template <class T> 返回值类型 类名<T>::成员函数名(参数列表)
{
//类模板内容
};

实例:

#include <iostream>

using namespace std;

template <class T> class MAX //类模板
{
public:
MAX(T v1, T v2);
T getmax(MAX &a);
private:
T x,y;
};

template <class T> MAX<T>::MAX(T v1, T v2) //定义
{
x = v1;
y = v2;
}

template <class T> T MAX<T>::getmax(MAX &a) //定义
{
return a.x<a.y ? a.y:a.x;
}

int main(int argc,char **argv)
{
MAX<int> x(1, 2);
cout << "最大值为: " << x.getmax(x) << endl;

return 0;
}