编写一个复数类模板Complex,其数据成员real、img的类型未知,定义相应的成员函数(构造函数、+运算符重载函数、输出函数),在主函数中实例化一个数据成员real、img均为double的复数类对象并测试之。 输入格式: 输入两行: 第一行是复数x的实部与虚部,以空格分隔; 第二行是复数y的实部与虚部,以空格分隔。 输出格式: x与y之和。
时间: 2023-11-28 17:47:40 浏览: 160
以下是Complex类模板的实现代码:
```cpp
template<typename T>
class Complex {
private:
T real, img;
public:
Complex(T r = 0, T i = 0) : real(r), img(i) {}
Complex<T> operator+(const Complex<T>& other) const {
return Complex<T>(real + other.real, img + other.img);
}
void print() const {
cout << real << "+" << img << "i" << endl;
}
};
```
在主函数中,我们可以这样使用:
```cpp
int main() {
double x_real, x_img, y_real, y_img;
cin >> x_real >> x_img >> y_real >> y_img;
Complex<double> x(x_real, x_img);
Complex<double> y(y_real, y_img);
Complex<double> z = x + y;
z.print();
return 0;
}
```
例如,如果输入复数x为1.2+3.4i,复数y为-5.6+7.8i,那么程序的输出结果为:
```cpp
-4.4+11.2i
```
阅读全文