c++用类模板实现整数加法,小数加法,复数加法
时间: 2024-03-27 22:40:57 浏览: 62
C++的函数模板和类模板
5星 · 资源好评率100%
好的,我可以为您提供这个类模板的实现:
```c++
#include <iostream>
#include <type_traits>
#include <complex>
template<typename T>
class Adder {
public:
static_assert(std::is_arithmetic<T>::value, "Adder only supports arithmetic types");
T operator()(T a, T b) const {
return a + b;
}
};
template<typename T>
class Adder<std::complex<T>> {
public:
std::complex<T> operator()(const std::complex<T>& a, const std::complex<T>& b) const {
return a + b;
}
};
int main() {
Adder<int> int_adder;
std::cout << int_adder(1, 2) << std::endl;
Adder<float> float_adder;
std::cout << float_adder(1.5, 2.5) << std::endl;
Adder<std::complex<double>> complex_adder;
std::cout << complex_adder(std::complex<double>{1.0, 2.0}, std::complex<double>{3.0, 4.0}) << std::endl;
return 0;
}
```
这个类模板可以支持整数加法、小数加法和复数加法。当使用 `Adder<T>` 时,如果 `T` 是算术类型(即 `int`、`float`、`double` 等),则使用 `operator()` 对两个数进行加法运算。如果 `T` 是复数类型,则使用复数的加法运算。
阅读全文