Iterator クラスの実装中に ->() 演算子をオーバーロードするという問題に直面しました。この演算子はどのようにオーバーロードする必要がありますか?
class iterator
{
private:
pair<Key_t, Val_t> p;
public:
iterator()
{
}
iterator(const iterator &i)
{
p = i.p;
}
iterator(Key_t key, Val_t v)
{
p = make_pair(key,v);
}
pair<const Key_t,Val_t>& operator *() const
{
return p;
}
iterator& operator = (const iterator &iter)
{
this->p = iter;
return *this;
}
};
この方法を試みたが失敗した
&(pair<const Key_t,Val_t>&) operator ->() const
{
return &(**this);
}