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的地址,按理说不应该是返回整个结构体的地址才对?不是很明白,希望有大佬可以指点下,谢谢啦!
查看3道真题和解析
OPPO公司福利 1101人发布