一、类模版
1、类模版与普通函数的实现方式一样
2、类模版在定义对象的时候必须指定类型,否则编译器不会自动推导
二、示例
#include <iostream>
using namespace std;
template<typename T>
class Operator
{
public:
T Add(T a, T b)
{
return a + b;
}
T Minus(T a, T b)
{
return a - b;
}
};
int main()
{
Operator<int> opt1; //类模版必须指定类型
Operator<double> opt2;
cout<<opt1.Add(1,2)<<endl;
cout<<opt1.Minus(1, 2)<<endl;
cout<<opt2.Add(1.1,2.2)<<endl;
cout<<opt2.Minus(1.1, 2.2)<<endl;
return 0;
}
三、类模版的工程应用
1、在类模版外部定义成员函数的时候,也需要加上template关键字
2、类模版必须把声明和定义放在一个文件来调用,不然第二次编译时找不到定义
template<typename T>
class Operator
{
public:
T Add(T a, T b);
T Minus(T a, T b);
};
template<typename T>
T Operator<T>::Add(T a, T b)
{
return a + b;
}
template<typename T>
T Operator<T>::Minus(T a, T b)
{
return a - b;
}