SDUT-2677 4-1 复数类的运算符重载

来源:互联网 发布:win7未知网络错误 编辑:程序博客网 时间:2024/05/30 22:44

4-1 复数类的运算符重载

Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic

Problem Description

通过本题目的练习可以掌握成员运算符重载及友元运算符重载

要求定义一个复数类,重载加法和减法运算符以适应对复数运算的要求,重载插入运算符(<<)以方便输出一个复数的要求。

Input

 

要求在主函数中创建对象时初始化对象的值。

Output

 

输出数据共有4行,分别代表ab的值和它们求和、求差后的值

Example Input

Example Output

a=3.2+4.5ib=8.9+5.6ia+b=12.1+10.1ia-b=-5.7-1.1i

Hint

 

Author

 黄晶晶
#include <iostream>using namespace std;class Point{public:    friend Point operator+(Point&a,Point&b);    friend Point operator-(Point&a,Point&b);    void show();    Point(double xx=0,double yy=0);private:    double x;    double y;    static int c;};Point::Point(double xx,double yy){    x=xx;    y=yy;}void Point::show(){    c++;    if(c==1)        cout<<"a="<<x<<'+'<<y<<'i'<<endl;    else if(c==2)        cout<<"b="<<x<<'+'<<y<<'i'<<endl;    if(c==3)        cout<<"a+b="<<x<<'+'<<y<<'i'<<endl;    else if(c==4)        cout<<"a-b="<<x<<y<<'i'<<endl;}Point operator+(Point &a,Point &b){    Point t;    t.x=a.x+b.x;    t.y=a.y+b.y;    return t;}Point operator-(Point &a,Point &b){    Point t;    t.x=a.x-b.x;    t.y=a.y-b.y;    return t;}int Point::c=0;int main(){    Point a(3.2,4.5),b(8.9,5.6),c,d;    c=a+b;    d=a-b;    a.show();    b.show();    c.show();    d.show();    return 0;}

0

函数类型    operator    运算符名称(形参列表)

对运算符的重载处理

}

0

运算符被重载后,原有功能依然保留,并未丧失或者改变

0

0

0

0

0

0

0

0

0

0

0

0

0



原创粉丝点击