1、函数模板与类模板有什么区别
函数模板在使用的时候不需要程序员指定参数类型,编译器在编译的时候自动绑定类型。类模板在使用的时候需要程序员指定类型。下面是例子:
template<class T> max(const T a, const T b)
{
return (a>b ? a : b);
}
这样用:
//int
int a = 1, b = 2;
max(a, b);
//float
float c = 1.0f, d = 2.0f;
max(c, d);
//double
double e = 1.0, f = 2.0;
max(e, f);
类模板:
template<class T>
class C
{
public:
T max(const T a, const T b)
{
return (a>b ? a : b);
}
};
对这个类进行实例化:
//int
C<int> cn;
//float
C<float> cf;
//double
C<double> cd;