编写一个C++程序,要求如下:
时间: 2024-10-11 07:16:35 浏览: 5
编写一个简单的C++程序,你可以创建一个包含函数重载和模板的示例。首先,我们会定义一个基础类型(比如整数)的加法运算符重载版本,然后创建一个模板类,展示如何处理不同类型的数据。
```cpp
// 函数重载例子 - 整数加法
class IntegerAdder {
public:
static int add(int a, int b) { return a + b; }
};
// 模板类 - 多态加法
template <typename T>
class Adder {
public:
// 对于基本数据类型,提供+操作
static T add(T a, T b) { return a + b; }
// 对于自定义类型,如果实现了+运算符,则可以自动重载
template <typename U>
static typename std::enable_if<std::is_arithmetic<U>::value, T>::type add(T a, U b) {
return a + static_cast<T>(b);
}
// 如果U不是算术类型,会抛出异常
template <typename U>
static typename std::enable_if<!std::is_arithmetic<U>::value, T>::type add(T a, U b) {
throw std::runtime_error("Unsupported type for addition");
}
};
int main() {
// 使用IntegerAdder
int sumInt = IntegerAdder::add(5, 7);
// 使用模板类Adder
double sumDouble = Adder<double>::add(3.14, 2.71);
try {
// 这将触发异常处理
char sumChar = Adder<char>::add('A', 'B');
} catch (const std::exception& e) {
std::cout << "Caught exception: " << e.what() << std::endl;
}
return 0;
}