编写一个复数类模板Complex,其数据成员real、img的类型未知,定义相应的成员函数(构造函数、+运算符重载函数、输出函数),在主函数中实例化一个数据成员real、img均为double的复数类对象并测试之。
时间: 2024-05-10 20:17:49 浏览: 118
运算符重载为成员函数-C语言运算符重载
下面是Complex类模板的实现代码:
```c++
#include <iostream>
template<typename T>
class Complex {
private:
T real, img;
public:
Complex(T r, T i) : real(r), img(i) {}
Complex<T> operator+(const Complex<T>& c) {
return Complex<T>(real + c.real, img + c.img);
}
void print() {
std::cout << real << " + " << img << "i" << std::endl;
}
};
```
在主函数中,我们可以实例化一个Complex类对象,并测试它的加法运算:
```c++
int main() {
Complex<double> c1(1.2, 3.4);
Complex<double> c2(5.6, 7.8);
Complex<double> c3 = c1 + c2;
c3.print();
return 0;
}
```
输出结果为:
```
6.8 + 11.2i
```
阅读全文