我正在制作自己的类似 STL 的容器 - 带有任意数量孩子的树
template<typename Type>
class Node
{
Type value;
Iterator AddChild(const Type & value);
void Remove(const Iterator & where);
...
};
我决定迭代器operator*应该返回value当前节点,但是应该返回operator->什么?目前,它返回Node<Type>*并且在这种情况下非常有用
Node<int>::Iterator it = tree.begin();
it->AddChild(4);
但是我的导师说我,那operator->应该回来Type*。访问 Node 方法的类似 STL 的方式是什么?类似的东西看起来it.Ref().MyMethod()不太好。