c++ STL的list中->运算符重载的问题
按我的理解是list中->重载是通过调用*重载实现的,代码如下:
template <class T> struct node { typedef void* void_pointer; void_pointer prev; void_pointer next; T data; }; reference operator*() const { return ((*node).data); } pointer operator->() const { return &(operator*()); }按理说operator *()返回的应该是(*node).data,在->重载中返回的&(operator*())是data的地址,按理说不应该是返回整个结构体的地址才对?不是很明白,希望有大佬可以指点下,谢谢啦!