友元函数不能访问私有成员和结构歧义
这里的友元函数为什么不能访问私有成员?哪里结构歧义了 怎么改
#include<iostream>
using namespace std;
class Complex
{public:
Complex(){real=0;imag=0;}
Complex(double r,double i){real=r;imag=i;}
Complex operator+(Complex &c2);
friend ostream &operator<<(ostream &,Complex &);
private:
double real;
double imag;
};
Complex Complex::operator+(Complex &c2)
{return Complex(real+c2.real,imag+c2.imag);}
ostream &operator<<(ostream &output,Complex &c)
{output<<"("<<c.real<<"+"<<c.imag<<"i)"<<endl;
return output;
}
int main()
{Complex c1(2,4),c2(6,10),c3;
c3=c1+c2;
cout<<c3;
return 0;
}