我有一个迭代器,它遍历 std::shared_ptr。因此 operator++ 将内部存储的共享指针指向下一项。
template<class IT>
class MyIterator
{
public:
...
MyIterator& operator++()
{
_i = ... // Call factory
return *this;
}
private:
std::shared_ptr<IT> _i;
};
我应该如何实现 operator*() 和 operator->() 运算符?
我应该如何测试迭代器是否指向 NULL,即内部共享指针是否指向 NULL。