01./* 02.* 程式的著作權和版本聲明部分 03.* Copyright (c)2013, 煙台大學電腦學院學生 04.* All rightsreserved. 05.* 檔案名稱:complex .cpp 06.* 作 者:趙冠哲 07.* 完成日期:2013年5月7日 08.* 版本號碼: v1.0 09.* 輸入描述: 10.* 問題描述: 11.*/ #include <iostream>using namespace std;class Complex{public: Complex(){real = 0; imag = 0;} Complex(double r, double i){real = r; imag = i;} Complex operator+ (Complex &c2); Complex operator- (Complex &c2); Complex operator* (Complex &c2); Complex operator/ (Complex &c2); friend istream& operator >> (istream&, Complex&); friend ostream& operator << (ostream&, Complex&);private: double real; double imag;};//下面定義成員函數Complex Complex::operator+ (Complex &c2){ return Complex(this->real + c2.real, this->imag + c2.imag);}Complex Complex::operator- (Complex &c2){ return Complex(this->real - c2.real, this->imag - c2.imag);}Complex Complex::operator* (Complex &c2){ Complex c; c.real = real*c2.real - imag*c2.imag; c.imag = real*c2.imag + imag*c2.real; return c;}Complex Complex::operator/ (Complex &c2){ Complex c; c.real = (real*c2.real + imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); c.imag = (-real*c2.imag + imag*c2.real)/(c2.real*c2.real+c2.imag*c2.imag); return c;}istream& operator >> (istream& input, Complex& c){ cout << "請輸入複數的實部和虛部的數字:" << endl; input >> c.real >> c.imag; return input;}ostream& operator << (ostream& output, Complex& c){ output << "(" << c.real << "," << c.imag << ")"; return output;}int main(){ Complex c1, c2, c3; cin >> c1 >> c2; cout << "c1=" << c1 << endl; cout << "c2=" << c2 << endl; c3 = c1 + c2; cout << "c1+c2=" << c3 << endl; c3 = c1 - c2; cout << "c1-c2=" << c3 << endl; c3 = c1 * c2; cout << "c1*c2=" << c3 << endl; c3 = c1 / c2; cout << "c1/c2=" << c3 << endl; return 0;}
運行結果: