C++将泛型编程的思想运用到类中
C++类模板
以相同的方式处理不同的类型。
类声明前使用 template进行标识。
<typename T> 用于说明类中使用泛型类型T
template <typename T>
class Operator
{
public:
T op(T a, T b);
};
类模板的应用
只能显示指定具体的类型,无法自动推倒
使用具体类型<Type>定义对象
Operator<int> op1;
Operator<string> op2;
工程实际应用对类模板的要求
#ifndef _OPERATOR_H_
#define _OPERATOR_H_
template < typename T >
class Operator
{
public:
T add(T a, T b);
T minus(T a, T b);
T multiply(T a, T b);
T divide(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;
}
template < typename T >
T Operator<T>::multiply(T a, T b)
{
return a * b;
}
template < typename T >
T Operator<T>::divide(T a, T b)
{
return a / b;
}
#endif
小结
类模板以相同的方式处理不同的数据类型
类模板在使用时只能显示指定类型