实现复数的加减乘运算,并实现判断两个复数是否是共轭复数的功能。
#include <iostream>
using namespace std;
class Complex {
private:
double real;//实部
double imag;//虚部
public:
Complex(double r = 0.0, double i = 0.0) {
real = r;
imag = i;
}
//加减乘
friend Complex operator+(const Complex& c1, const Complex& c2);
friend Complex operator-(const Complex& c1, const Complex& c2);
friend Complex operator*(const Complex& c1, const Complex& c2);
//判断两个数是否构成共轭复数
friend bool isComplex(const Complex& c1, const Complex& c2);
//输出结果
void display() {
cout << real << " + " << imag << "i" << endl;
}
};
//复数相加(a+bi)+(c+di)=(a+c)+(b+d)i
Complex operator+(const Complex& c1, const Complex& c2) {
return Complex(c1.real + c2.real, c1.imag + c2.imag);
}
//复数相减(a+bi)-(c+di)=(a-c)+(b-d)i
Complex operator-(const Complex& c1, const Complex& c2) {
return Complex(c1.real - c2.real, c1.imag - c2.imag);
}
//复数相乘(a+bi)(c+di)=(ac-bd)+(bc+ad)i
Complex operator*(const Complex& c1, const Complex& c2) {
double r = c1.real * c2.real - c1.imag * c2.imag;
double i = c1.real * c2.imag + c1.imag * c2.real;
return Complex(r, i);
}
//判断两个数是否构成共轭复数(实部相等并且虚部互为相反数)
bool isComplex(const Complex& c1, const Complex& c2) {
return (c1.real == c2.real) && (c1.imag == -c2.imag);
}
int main() {
Complex c1(1.0, 2.0);
Complex c2(1.0, -2.0);
Complex sum = c1 + c2;
Complex difference = c1 - c2;
Complex product = c1 * c2;
cout << "Sum: ";
sum.display();
cout << "Difference: ";
difference.display();
cout << "Product: ";
product.display();
if (isComplex(c1, c2)) {
cout << "c1 and c2 are conjugate complex numbers." << endl;
}
else {
cout << "c1 and c2 are not conjugate complex numbers." << endl;
}
return 0;
}
运行结果: