函数模板初探
函数模板和函数的重载
仍然拿max函数举例。使用double重载max函数。然后分别使用float和double实例化:
template
T max(T lhs,T rhs) {
return (lhs > rhs)? lhs : rhs;
}
double max(double lhs, double rhs) {
return (lhs > rhs)? lhs : rhs;
}
int main() {
max(10.5f, 5.5f); // (1)
max(10.5, 5.5); // (2)
}
此时(1)和(2)分别会调用哪个函数? 答案是编译器会选择最匹配的函数。
(1):函数模板是更好的匹配,因为函数需要类型转换;(2):函数模板和函数都可以匹配,在这种情况下,编译器会选择函数。
C++ Insights输
函数模板初探最先出现在Python成神之路。
共有 0 条评论