同样的 我们可以对类定义模板
与之前不同的是 类内的函数在诶外进行声明时 加类作用域 模板声明
template <typename T1, typename T2>
Point<T1, T2>::Point(T1 x, T2 y)
{
this->x = x;
this->y = y;
}
template <typename T1, typename T2>
void Point<T1, T2>::Show()
{
cout << this->x << " " << this->y << endl;
}
在主函数中
定义类时
Point<int, int> po(100,200);
需要对模板列表的T1 T2赋予实际的类型
完整代码如下
#include<iostream>
using namespace std;
template <typename T1, typename T2>
class Point
{
public:
T1 x;
T2 y;
public:
Point(T1 x,T2 y);
void Show();
};
template <typename T1, typename T2>
Point<T1, T2>::Point(T1 x, T2 y)
{
this->x = x;
this->y = y;
}
template <typename T1, typename T2>
void Point<T1, T2>::Show()
{
cout << this->x << " " << this->y << endl;
}
int main()
{
Point<int, int> po(100,200);
po.Show();
return 0;
}