标签: c++ operator-overloading overloading
重载时,间接运算符(*obj)必须返回引用,而成员访问运算符(obj->)必须返回指针。
*obj
obj->
struct my_ptr { some_type & operator* () { return *ptr; } // returns reference some_type * operator->() { return ptr; } // returns pointer some_type *ptr; };
为什么会有这种区别?