您的位置:首页 > 其它

运算符重载(摘抄)

2016-05-12 20:05 295 查看
通过函数来实现复数相加

#include <iostream>

using namespace std;

class Complex
{
public:
Complex(){real = 0;imag = 0;}
Complex(float r,float i){real = r;imag = i;}
Complex complex_add(Complex &c2);
void display();
private:
double real;
double imag;
};

Complex Complex::complex_add(Complex &c2)
{
Complex c;
c.real = real+c2.real;
c.imag = imag+c2.imag;
return c;
}

void Complex::display()
{
cout << "(" << real << "," << imag << "i)" << endl;
}

int main()
{
Complex c1(3,4),c2(5,-10),c3;
c3 = c1.complex_add(c2);
cout << "c1 =";c1.display();
cout << "c2 =";c2.display();
cout << "c1 + c2 =";c3.display();
return 0;
}
下面的目标是把 c3 = c1.complex_add(c2); 变成 c3 = c1 + c2;

#include <iostream>

using namespace std;

class Complex
{
public:
Complex(){real = 0;imag = 0;}
Complex(float r,float i){real = r;imag = i;}
Complex operator+(Complex &c2);
//Complex complex_add(Complex &c2);
void display();
private:
double real;
double imag;
};

Complex Complex::operator+(Complex &c2)
//Complex Complex::complex_add(Complex &c2)
{
return Complex(real+c2.real,imag+c2.imag);
//Complex c;
//c.real = real+c2.real;
//c.imag = imag+c2.imag;
//return c;
}

void Complex::display()
{
cout << "(" << real << "," << imag << "i)" << endl;
}

int main()
{
Complex c1(3,4),c2(5,-10),c3;
c3 = c1+c2;
//c3 = c1.complex_add(c2);
cout << "c1 =";c1.display();
cout << "c2 =";c2.display();
cout << "c1 + c2 =";c3.display();
return 0;
}


成功!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: