类模板
把通用类变成模板!
template <class 或 typename T>
class 类名
{
...
}
template <class T>
class Math
{
public:
//成员函数在内部实现
T sum(T a,T b)
{
return a + b;
}
}
在类定义体外定义成员函数时,还需要类体外进行模板声明
template <class T>
class Math
{
public:
T sum(T a,T b);
};
//成员函数在外部实现
template <class T>
T Math<T>::sum(T a, T b)
{
return a > b? a: b;
}
模板类
表示的是由一个类模板生成而来的类。
#include <iostream>
template <class T>
class Math
{
public:
T sum(T a,T b);
T max(T a,T b)
{
return a > b ? a : b;
}
};
//成员函数在外部实现
template <class T>
T Math<T>::sum(T a, T b)
{
return a > b? a: b;
}
int main()
{
Math<int> math1;
std::cout<<math1.sum(100,100)<<std::endl;
Math<int> math2;
std::cout<<math2.max(100,200)<<std::endl;
return 0;
}
注意:模板类函数的声明与实现必须放在同一个.h文件内!