类模板的一个例子
#include <iostream>
template <typename T>
class animal
{
public:
void add();
animal (T a, T b): x(a),y(b)
{ }
private:
T x;
T y;
};
template <typename T>
void animal<T>::add() //类名无论走到哪里都要跟<T>; 实例化一个对象的时候要跟具体类型,如<int>.
{
std::cout<<x+y<<std::endl;
}
int main()
{
animal<int> ani(1,2);
ani.add();
return 0;
}
在类模板中成员函数既可以定义在类模板内(普通),也可以定义在类模板外,在定义类模板外时C++有这样的规定:需要在成员函数定义之前进行模板声明,且在成员函数名之前加上“类名<类型参数>::”: