C++实现一个复数类

来源:互联网 发布:奥迪a4矩阵式led大灯 编辑:程序博客网 时间:2024/05/16 08:26

1.实现一个复数类的代码

#define _CRT_SECURE_NO_WARNINGS#include <iostream>using namespace std;class Complex{public://默认的构造函数(含缺省值,并初始化参数)Complex(const double real=0.0, const double image=0.0):_real(real), _image(image){}//拷贝构造函数Complex(const Complex& c){_real = c._real;_image = c._image;}//析构函数~Complex(){}//赋值运算符的重载Complex& operator=(const Complex& c){this->_real = c._real;this->_image = c._image;return *this;}Complex operator+(const Complex& c){Complex tmp;tmp._real = _real + c._real;tmp._image = _image + c._image;return tmp;}Complex operator-(const Complex& c){Complex tmp;tmp._real = _real - c._real;tmp._image = _image - c._image;return tmp;}Complex operator*(const Complex& c){Complex tmp;tmp._real = _real * c._real-_image*c._image;tmp._image = _real * c._image+_image*c._real;return tmp;}Complex operator/(const Complex& c){Complex tmp;tmp._real = (_real / c._real + _image*c._image) / (c._real*c._real + c._image*c._image);tmp._image = (_image*c._real - _real*c._image) / (c._real*c._real + c._image*c._image);return tmp;}Complex operator+=(const Complex& c){_real += c._real;_image += c._image;return *this;}Complex operator-=(const Complex& c){_real -= c._real;_image -= c._image;return *this;}Complex operator*=(const Complex& c){double real0=_real;double image0 = _image;_real = (real0 * c._real - image0*c._image);_image = (real0 * c._image + image0*c._real);return *this;}Complex operator/=(const Complex& c){double real0 = _real;double image0 = _image;_real /= (real0 / c._real + image0*c._image) / (c._real*c._real + c._image*c._image);_image /= (image0*c._real - real0*c._image) / (c._real*c._real + c._image*c._image);return *this;}void Display(){cout << _real<<" "<< _image << endl;}private:double _real;double _image;};//测试函数void Funtest(){Complex c1(2.0,3.0);c1.Display();Complex c2(c1);c2.Display();Complex c3;c1 *= c2;//c3 = c1*c2;c1.Display();}int main(){Funtest();getchar();return 0;}