程序代码
实现复数类的加减乘除 code c++
#include <iostream>
using namespace std;
class Complex {
public :
Complex() : real(0), img(0) {}
Complex(int real, int img) : real(real), img(img) {}
Complex(const Complex &c) : real(c.real), img(c.img) {}
Complex &operator=(const Complex &c);
Complex operator+(const Complex &c);
Complex &operator+=(int t);
Complex operator-(const Complex &c);
Complex operator*(const Complex &c);
Complex operator/(const Complex &c);
int get_real() const { return this->real; }
int get_img() const { return this->img; }
private:
friend ostream &operator<<(ostream &out, const Complex &c);
friend Complex operator+(const Complex &c, const Complex &c1);
int real, img;
};
Complex &Complex::operator=(const Complex &c) {
this->real = c.real;
this->img = c.img;
return *this;
}
Complex Complex::operator+(const Complex &c) {
Complex t(this->real + c.real, this->img + c.img);
return t;
}
Complex operator+(const Complex &c, const Complex &c1) {
Complex t(c.real + c1.real, c.img + c1.img);
return t;
}
Complex &Complex::operator+=(int t) {
this->real += t;
this->img += t;
return *this;
}
Complex Complex::operator-(const Complex &c) {
Complex t(this->real - c.real, this->img - c.img);
return t;
}
Complex Complex::operator*(const Complex &c) {
Complex t(this->real * c.real - this->img * c.img, this->real * c.img + this->img * c.real);
return t;
}
Complex Complex::operator/(const Complex &c) {
int real = (this->real * c.real + this->img * c.img) / (c.real * c.real + c.img * c.img);
int img = (this->img * c.real - this->real * c.img) / (c.real * c.real + c.img * c.img);
Complex t(real, img);
return t;
}
ostream &operator<<(ostream &out, const Complex &c) {
out << "(" << c.real << ", " << c.img << ")";
return out;
}
int main() {
Complex c1;
Complex c2(1, 2);
Complex c3(c2);
cout << "c1: " << c1 << endl;
cout << "c2: " << c2 << endl;
cout << "c3: " << c3 << endl;
cout << "c2 + c3: " << c2 + c3 << endl;
cout << "c2 * c3: " << c2 * c3 << endl;
cout << "c2 / c3: " << c2 / c3 << endl;
cout << "---------------" << endl;
c2 += 2;
cout << "c2 += 2: " <<c2 << endl;
cout << "c2.get_real(): " << c2.get_real() << "; ";
cout << "c2.get_img(): " << c2.get_img() << endl;
return 0;
}
运行结果
c1: (0, 0)
c2: (1, 2)
c3: (1, 2)
c2 + c3: (2, 4)
c2 * c3: (-3, 4)
c2 / c3: (1, 0)
---------------
c2 += 2: (3, 4)
c2.get_real(): 3; c2.get_img(): 4
结论
代码示例,有问题留言。