用C++来实现类模板实现整数加法,小数加法,复数加法
时间: 2024-03-27 14:41:00 浏览: 48
可以这样实现:
```cpp
#include <iostream>
template<typename T>
class Adder {
public:
T add(const T& x, const T& y) {
return x + y;
}
};
template<>
class Adder<std::complex<double>> {
public:
std::complex<double> add(const std::complex<double>& x, const std::complex<double>& y) {
return x + y;
}
};
int main() {
Adder<int> intAdder;
std::cout << intAdder.add(1, 2) << std::endl;
Adder<double> doubleAdder;
std::cout << doubleAdder.add(1.1, 2.2) << std::endl;
Adder<std::complex<double>> complexAdder;
std::cout << complexAdder.add(std::complex<double>(1.0, 2.0), std::complex<double>(3.0, 4.0)) << std::endl;
return 0;
}
```
这里定义了一个类模板 `Adder`,用于实现加法操作。`Adder` 类模板有一个成员函数 `add`,接受两个参数并返回它们的和。对于整数和浮点数,我们可以使用默认实现,直接使用 `+` 运算符进行加法运算。对于复数,我们需要特化 `Adder` 类模板,使用 `std::complex<double>` 类型的 `+` 运算符进行加法运算。在 `main` 函数中,我们分别创建了 `Adder<int>`、`Adder<double>` 和 `Adder<std::complex<double>>` 三个实例,分别用于执行整数加法、小数加法和复数加法。
阅读全文