在上一篇文章的基础上加了友元

#include <iostream>

using namespace std;

class Complex
{
public:
    Complex(){real=0;imag=0;}
    Complex(double r,double i){real=r;imag=i;}
     friend Complex operator+(Complex &c1,Complex &c2);//声明重载运算符+的函数
    void display();
private:
    double real;//实部
    double imag;//虚部
};
 Complex operator+(Complex &c1,Complex &c2)//定义重载运算符+的函数
{
    return Complex(c1.real+c2.real,c1.imag+c2.imag);
}
void Complex::display()//定义输出复数形式
{
    cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
int main()
{
    Complex c1(3,4),c2(5,-10),c3;
    c3=c1+c2;//运算符+用于复数运算
    cout<<"c1=";c1.display();//输出c1的值
    cout<<"c2=";c2.display();//输出c2的值
    cout<<"c1+c2=";c3.display();//输出c1+c2的值
    return 0;
}

加了个友元,三篇文章的结果都是一样的,但要注意细节。

你可能感兴趣的:(在上一篇文章的基础上加了友元)