📄 complex.cpp
字号:
#include <cmath>
#include <stdexcept>
#include "Complex.h"
using std::cout;
Complex::Complex() {
Real = 0;
Imag = 0;
}
Complex::Complex(double X) {
Real = X;
Imag = 0.0;
}
Complex::Complex(double X, double Y) {
Real = X;
Imag = Y;
}
Complex::Complex(Complex const& c) {
Real = c.Real;
Imag = c.Imag;
}
Complex Complex::operator + (Complex const& X) {
return Complex(Real + X.Real, Imag + X.Imag);
}
Complex Complex::operator - (Complex const& X) {
return Complex(Real - X.Real, Imag - X.Imag);
}
Complex Complex::operator * (Complex const& X) {
return Complex(Real*X.Real - Imag*X.Imag, Real*X.Imag + Imag*X.Real);
}
Complex Complex::operator / (Complex const& X) {
double drt = X.Real * X.Real + X.Imag * X.Imag;
if ( drt == 0.0 ) {
throw std::domain_error("The divisor is zero!");
}
return Complex((Real * X.Real + Imag * X.Imag)/drt, (Imag * X.Real - Real * X.Imag)/drt);
}
Complex Complex::operator / (double d) {
if ( d == 0.0 ) {
throw std::domain_error("The divisor is zero!");
}
return Complex(Real/d, Imag/d);
}
Complex Complex::Conj() const {
return Complex(Real, -Imag);
}
double Complex::absCplx() const {
return std::sqrt(Real*Real + Imag*Imag);
}
void Complex::Display() const {
cout<<Real<<" + j"<<Imag;
}
void Complex::Display(ostream& out) const {
out<<Real<<" + j"<<Imag;
}
ostream& operator << (ostream& out, Complex& d){
d.Display(out);
return out;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -