用c++编写一个复数类模板Complex,其数据成员real和image的类型未知,定义相同的成员函数,实现构造、输出、加、减等功能。在主函数中定义模板类对象,分别以int和double实例化类型参数,实现复数中的相关操作
时间: 2024-03-03 10:47:26 浏览: 103
好的,我理解了你的要求,以下是实现Complex类的代码:
```cpp
#include <iostream>
using namespace std;
template <typename T>
class Complex{
private:
T real;
T image;
public:
Complex(T r = 0, T i = 0) : real(r), image(i) {}
Complex operator+(const Complex& c) const {
return Complex(real + c.real, image + c.image);
}
Complex operator-(const Complex& c) const {
return Complex(real - c.real, image - c.image);
}
friend ostream& operator<<(ostream& os, const Complex& c) {
os << "(" << c.real << ", " << c.image << "i)";
return os;
}
};
int main() {
Complex<int> c1(1, 2);
Complex<double> c2(3.4, 5.6);
cout << "c1 = " << c1 << endl;
cout << "c2 = " << c2 << endl;
cout << "c1 + c2 = " << (c1 + c2) << endl;
cout << "c1 - c2 = " << (c1 - c2) << endl;
return 0;
}
```
在这个程序中,我们定义了一个Complex类模板,其中包含了两个模板参数real和image,分别表示复数的实部和虚部,以及一些基本的运算符重载函数和输出函数。在主函数中,我们分别使用int和double实例化了Complex类,然后进行了加减运算并输出了结果。
阅读全文