class complex
{
public:
complex (double r = 0, double i = 0)
: re (r), im (i) // 初始化高级用法
{ }
complex& operator += (const complex&);
double real () const { return re; }
double imag () const { return im; }
private:
double re, im;
friend complex& __doapl (complex*, const complex&);
};
inline complex&
__doapl (complex* ths, const complex& r)
{
ths->re += r.re;
ths->im += r.im;
return *ths;
}
// 自由取得friend的private成员!!!
友元:可以自由获得friend的private成员!!!
注意:
相同class 的各个object互为friends!!!
例子:
class complex
{
public:
complex (double r = 0, double i = 0)
: re (r), im (i) // 初始化高级用法
{ }
int func(const complex& param)
{ return param.re + param.im; }
private:
double re, im;
};
{
complex c1(2,1);
complex c2;
c2.func(c1);
}