为什么私有成员还能被赋值?
#include <iostream>
using namespace std;
class Complex
{
public:
Complex(){real=0;imag=0;}
Complex(double r,double 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.real为什么能被赋值?它是对象c的私有成员啊。
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;
}