《C++primer》读书笔记1——第十章 函数模板
- 作者:zhaozj
- 发表时间:2020-12-23 11:00
- 来源:未知
函数模板(function template)
强类型语言在某些时候对于实现相对简单的函数似乎是个障碍。例如,对下面的函数min()的算法很简单,但是强类型语言要求我们为所有希望比较的类型都实现一个实例:
int min(int a , int b){
return a < b ? a : b;
}
double min(double a ,double b){
return a < b ? a : b;
}
使用宏扩展#define min(a,b) ((a) < (b) ? (a) : (b))并不能解决这个问题,虽然当前没有问题,但是在复杂的场合下会出毛病。只有函数模板可以完美的解决这个问题。用法如下:
template <class Type>
Type min(Type a,Type b){
return a < b ? a : b;
}