在下面的代码中,我想知道 operator* 重载在这里做了什么。
// struct pointer to Shape
struct PtrToShape
{
Shape *ptr;
bool operator < (const PTRToShape & rhs) const
{ return *ptr < *rhs.ptr; }
const Shape & operator*() const
{ return *ptr; }
};
它会超载什么?它会为结构或形状对象重载 * 运算符吗?此重载是否用于:
return *ptr < *rhs.ptr
在我之前提到的那一行中,*(是否重载)指的是什么?到 rhs 还是到 rhs.ptr ?
谢谢你。