操作符重载
C中实现操作符的相关行为 需要通过函数来实现, 在C++中可通过操作符重载来做
操作符重载可以以成员函数 或 全局函数来实现, 某些细节上(如<<、>>)等, 需要仔细考量使用哪种实现方式
inline complex& __doapl(complex* ths, const complex& r)
{
ths->re += r.re;
ths->im += r.im;
return *ths;
}
inline complex& complex::operator += (const complex& r)
{
return __doapl(this, r);
}
问题1: 为何在+=中要抽象__doapl函数?
_doapl在其它地方可能会被用到, 所以在这里抽象出来.
inline complex
operator + (const complex& x, const complex& y)
{
return complex( real(x) + real(y),
imag(x) + imag(y));
}
注意: 上面这个函数绝不可return by reference, 因为, 它们的返回值的必定是localobject.
创建临时对象(对象无名称):
temp object (临时对象) typename();