用C++语言设计多个重载功能的函数fun,只接受一个参数,其功能如下: 1.若传入字符串,则可以输出它的实际长度 2.若传入个数字,则原样输出 3.若传入单个字母,则输出它的ASC码 要求程序定义三个同名函数fun,利用函数重载处理,主函数调用分别输出这三个结果。
时间: 2024-12-28 16:40:36 浏览: 0
在C++中,为了实现这样的需求,我们可以定义三个名为`fun`的不同版本,每个版本都接收一个不同类型作为参数,然后根据参数的类型执行相应的操作。这里是一个简单的例子:
```cpp
#include <iostream>
#include <string>
// 函数模板,用于处理字符串
template<typename T>
void fun(const T& arg) {
if constexpr (std::is_same_v<T, std::string>) { // 检查是否为字符串
std::cout << "字符串的实际长度:" << arg.length() << std::endl;
} else if constexpr (std::is_integral_v<T>) { // 检查是否为整数
std::cout << "原始输出:" << arg << std::endl;
} else if constexpr (std::is_same_v<T, char>) { // 检查是否为字符
std::cout << "ASCII码:" << static_cast<int>(arg) << std::endl;
}
}
int main() {
fun("Hello"); // 输出字符串的实际长度
fun(42); // 输出原始值
fun('A'); // 输出ASCII码
return 0;
}
```
在这个例子中,我们使用了C++11引入的模板元编程技术(Template Metaprogramming),通过`std::is_same_v`和`std::is_integral_v`等SFINAE(Substitution Failure Is Not An Error)机制来判断参数类型并选择对应的实现。
阅读全文