本题目要求定义函数模板对不同类型的数值求绝对值并输出结果。具体要求为:首先采用switch-case的方式,选择需要输入的类型,1表示输入int型,2表示double型;然后对不同类型求绝对值;最后输出求解的结果。C++
时间: 2024-12-18 17:37:36 浏览: 15
在C++中,你可以使用模板(template)和switch-case结构来实现这个功能。函数模板允许你编写一个通用的函数,可以处理多种数据类型。下面是一个示例,展示了如何定义一个求绝对值的函数模板:
```cpp
#include <iostream>
#include <cmath>
// 函数模板声明
template<typename T>
T absoluteValue(T value) {
switch (value) {
case 1:
return static_cast<T>(std::abs<int>(value));
case 2:
return static_cast<T>(std::abs<double>(value));
default:
throw std::invalid_argument("Unsupported data type");
}
}
int main() {
// 测试int型
int int_value = -5;
std::cout << "Absolute value of int: " << absoluteValue(int_value) << std::endl;
// 测试double型
double double_value = -3.14;
std::cout << "Absolute value of double: " << absoluteValue(double_value) << std::endl;
return 0;
}
```
在这个例子中,`absoluteValue`函数接受一个模板参数`T`,并在switch-case语句中根据传入的`value`类型转换,并调用相应的`std::abs`函数来计算绝对值。
阅读全文