关于函数模板的特化: 现有结构体类型定义struct Student{ unsigned ID; string Name; int Score; };和函数模板定义template<class T>T Max(T &t1,T &t2){ return (t1>t2)?t1:t2; },若要实现求两个学生中的成绩大者,对函数模板Max的如何正确特化?
时间: 2024-02-20 15:02:14 浏览: 62
intmax:返回指定整数类型的最大值
5星 · 资源好评率100%
可以对函数模板Max进行以下特化:
```c++
template<>
Student Max<Student>(Student &s1, Student &s2){
return (s1.Score > s2.Score)? s1 : s2;
}
```
这里的特化为函数模板Max提供了一个具体的实现,用于求两个学生中成绩更高的那个。需要注意的是,特化时需要指定模板参数类型,即对于Student类型的特化要写成`Max<Student>`。同时,由于这里的特化没有使用模板参数,所以需要在template后面加上空的尖括号<>。
阅读全文