概念
T max(T x,T y) {
return (x>y)?x∶y;
}
函数模板与模板函数
template < template/或class T>
T max(T x,T y){
return (x>y) ? x:y;
}
说明:
(1) 在函数模板中允许使用多个类型参数。但是应当注意template定义部分的每个类型参数前必须有关键字typename
(2)在template语句与函数模板定义语句之间不允许有别的语句
(3) 模板函数类似于普通重载函数,但模板函数要求函数体执行的动作要一样。
(4) 同一般函数一样,函数模板也可以重载。
(5)函数模板与同名的非模板函数可以重载。在这种情况下,调用的顺序是:非模板函数
类模板与模板类
template class Compare {
public:
compare(T a, T b)
{ x=a; y=b;}
T max( )
{return (x>y)? x:y;}
private:
T x,y;
};
用类模板定义对象时用以下形式:
类模板名<实际类型名> 对象名[{实参表列}];
Compare <double> com1(1,2,3)
特别规定:
1、在成员函数定义之前进行模板声明
在类模板体外定义的成员函数的一般形式如下
templateT <typename T>
T Compare<T>::max()
{ return (x>y)?x:y; }
网友评论