复数四则运算-操作符重载

来源:互联网 发布:asp.net与php 编辑:程序博客网 时间:2024/06/05 01:59


代码:

struct complex_number//复数结构体{    double shi;//实部    double xu;//虚部    void input()//输入    {        scanf("%lf%lf",&shi,&xu);    }    void print()//输出    {        printf("%.2lf + %.2lfi\n",shi,xu);    }    complex_number operator+(complex_number x)//加    {        complex_number ans;        ans.shi = shi + x.shi;        ans.xu = xu + x.xu;        return ans;    }    complex_number operator-(complex_number x)//减    {        complex_number ans;        ans.shi = shi - x.shi;        ans.xu = xu - x.xu;        return ans;    }    complex_number operator*(complex_number x)//乘    {        complex_number ans;        ans.shi = shi * x.shi - xu * x.xu;        ans.xu = xu * x.shi + shi * x.xu;        return ans;    }    complex_number operator/(complex_number x)//除    {        complex_number ans;        ans.shi = (shi * x.shi + xu * x.xu) / (x.shi * x.shi + x.xu * x.xu);        ans.xu = (xu * x.shi - shi * x.xu) / (x.shi * x.shi + x.xu * x.xu);        return ans;    }//    void operator=(complex_number x)//重载赋值操作符,但并没有必要//    {//        shi = x.shi;//        xu = x.xu;//    }};int main(){    complex_number a,b,c;//定义变量    a.input();//输入    b.input();    c = a + b;//运算    c.print();//输出    c = a - b;    c.print();    c = a * b;    c.print();    c = a / b;    c.print();    return 0;}
原创粉丝点击