函数模板与类模板有什么区别?
答:函数模板的实例化是由编译程序在处理函数调用时自动完成的,而类模板的实例化必须由程序员在程序中显式地指定。
即函数模板允许隐式调用和显式调用而类模板只能显示调用。
来源:http://blog.csdn.net/hankai1024/article/details/7904312
//使用模板创建一个返回最大值的函数
//这是一个函数模板
template <class Type>
Type MaxValue(Type a,Type b)
{
return (a > b)?a : b;
}
//创建一个堆栈模板类
template <class T>
class A
{
public:
A();
~A();
public:
T Max(T a, T b);
T Min(T a, T b);
};
template <class T>
T A<T>::Max(T a, T b)
{
//使用前置递减操作符
return (a > b)?a : b;
}
template <class T>
T A<T>::Min(T a, T b)
{
//使用前置递减操作符
return (a < b)?a : b;
}
int main()
{
A<int> a;//类模板的实例化由程序员显示的指定
a.Max(10,20);
}