C++中使用函数模板进行两个不同类型的数值计算
时间: 2023-06-15 15:06:04 浏览: 190
函数模板可以用来实现对不同类型的数值进行计算。以下是一个简单的函数模板例子,用于计算两个不同类型的数值相加:
```c++
template <typename T, typename U>
auto add(T a, U b) -> decltype(a + b) {
return a + b;
}
```
这个模板函数接受两个类型参数 `T` 和 `U`,并且返回 `a+b` 的结果,该结果的类型是根据 `a` 和 `b` 的类型推导出来的。例如,如果你调用 `add(3, 4.5)`,那么模板函数会返回 7.5,因为 `3` 是 `int` 类型,而 `4.5` 是 `double` 类型。
以下是一个完整的例子:
```c++
#include <iostream>
template <typename T, typename U>
auto add(T a, U b) -> decltype(a + b) {
return a + b;
}
int main() {
std::cout << add(3, 4.5) << std::endl; // 输出 7.5
std::cout << add(3.2, 4.5) << std::endl; // 输出 7.7
std::cout << add(3, 'a') << std::endl; // 输出 100 (ASCII码值)
return 0;
}
```
阅读全文