定义一个复数类Complex,重载运算符“+”, "-",“*”,“/”,使之能用于复数的加,减,乘,除。运算符重载函数作为Complex类的成员函数。编写程序,分别求两个复数之和,差,积和商。
#include <iostream> using namespace std;
//复数类
class Complex { public: Complex(){real = 0;imag = 0;} Complex(double r,double i){real = r;imag = i;} void display(); Complex operator +(Complex &c2);//重载操作符+
Complex operator -(Complex &c2);//重载操作符-
Complex operator *(Complex &c2);//重载操作符*
Complex operator /(Complex &c2);//重载操作符/
private: double real; double imag; };
void Complex::display() { cout << "(" << real << "," << imag << "i)" << endl; }
Complex Complex::operator +(Complex &c2) { Complex c; c.real = real + c2.real; c.imag = imag + c2.imag; return c; }
Complex Complex::operator -(Complex &c2) { Complex c; c.real = real - c2.real; c.imag = imag - c2.imag; return c; }
Complex Complex::operator *(Complex &c2) { Complex c; c.real = real * c2.real - imag * c2.imag; c.imag = imag * c2.real + real * c2.imag; return c; }
Complex Complex::operator /(Complex &c2) { Complex c; double temp = c2.real * c2.real + c2.imag * c2.imag; c.real = (real * c2.real + imag * c2.imag) / temp; c.imag = (imag * c2.real - real * c2.imag) / temp; return c; }
int main() { Complex c1(3,4),c2(5,-10),c3,c4,c5,c6; c3 = c1 + c2; c4 = c1 - c2; c5 = c1 * c2; c6 = c1 / c2; cout << "c1=";c1.display(); cout << "c2=";c2.display(); cout << "c1 + c2 ="; c3.display(); cout << "c1 - c2=";c4.display(); cout << "c1 * c2=";c5.display(); cout << "c1 / c2=";c6.display(); system("pause"); return 0; }
|
阅读(1945) | 评论(0) | 转发(0) |