如何重新设置解除引用运算符?宣言会是什么样子?我正在创建一个列表类,但我在解除引用运算符时遇到问题.
这是我重载dereference运算符的函数
template <typename T>
T List_Iterator<T>::operator *(){
return current_link->value;
}
Run Code Online (Sandbox Code Playgroud)
这是我的迭代器类中的数据成员
private:
/* Data Members */
Link<T>* current_link;
Run Code Online (Sandbox Code Playgroud)
这是我的链接类
protected:
T value;
Run Code Online (Sandbox Code Playgroud)
您应该返回引用,而不是副本:
T& List_Iterator<T>::operator *() { .... }
Run Code Online (Sandbox Code Playgroud)
否则语义会令人困惑:您无法修改"取消引用"的对象.