答案代码如下:
struct RINT{
RINT(int i):i_(i){}
RINT & operator=(int i){i_=i;return *this;}
private:
int i_;
friend RINT operator+(RINT const&);
friend RINT operator+(RINT const&,RINT const&);
friend RINT operator-(RINT const&);
friend RINT operator-(RINT const&,RINT const&);
friend RINT operator*(RINT const&,RINT const&);
friend RINT operator/(RINT const&,RINT const&);
friend RINT operator%(RINT const&,RINT const&);
};
RINT operator+(RINT const& a)
{
return a;
}
RINT operator+(RINT const& a,RINT const &b)
{
return RINT(a.i_+b.i_);
}
RINT operator-(RINT const&a)
{
return RINT(-(a.i_));
}
RINT operator-(RINT const& a,RINT const&b)
{
return RINT(a.i_-b.i_);
}
RINT operator*(RINT const& a,RINT const& b)
{
return RINT(a.i_*b.i_);
}
RINT operator/(RINT const&a,RINT const&b)
{
return RINT(a.i_/b.i_);
}
RINT operator%(RINT const &a,RINT const&b)
{
return RINT(a.i_%b.i_);
}
本例为算法运算符重载的友元写法