运算符重载(摘抄)

来源:互联网 发布:gcc for windows 编辑:程序博客网 时间:2024/06/05 19:19

通过函数来实现复数相加

#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;}

成功!



0 0
原创粉丝点击