Iterator 클래스를 구현하는 동안 ->() 연산자에 오버로드 문제가 있습니다. 이 연산자는 어떻게 오버로드되어야합니까? 반복자 클래스 C에 대한 연산자 리디렉션 연산자
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);
}
일반적으로 '연산자 *()'와 동일합니다. –
코드를 작성할 수 있습니까? 나는 반환 값으로 조금 붙어있다. – SAD
일반적으로'& (operator *()) '로 – Yuushi