2017-12-13 5 views
0

이것은 내 코드입니다 (일반적으로 멤버 함수가 많이 있지만 오류는 여전히 동일하므로 간단하게했습니다.)" '->'의 기본 피연산자는 포인터가 아닌 유형입니다."그러나 포인터입니다

당신이로 MyIterator 클래스, 뭔가에 -> 연산자를 제공해야
template <class K,class V> 
class MyMap:public MySet<pair<K, V> >{}; 

int main(void){ 

    MyMap<int,int> map1; 

    MyMap<int,int>::MyIterator it; 

    it=map1.begin(); 

    cout<<it->first<<endl; 

    return 0; 
} 
+4

그냥'MyIterator' 아닌 포인터이다. – Carcigenicate

+0

+1 (상대적으로) 문제를 실제로 재생산하는 (상대적으로) 최소한의 테스트 케이스를 작성하기 위해 +1 ( –

+2

) @OliverCharlesworth 불행히도 예제를 칭찬하는 데 너무 빠르다. 편집이 끝나면 더 이상 완료되지 않습니다 – user463035818

답변

6

:

그것은 유형과 같은
T *operator->() { 
    return data; 
} 
+0

고마워요 .2-3 시간에 일 했어요. – EasterGamer

+1

@EastGamer 여러분을 환영합니다. 문제가 해결되면 답변을 수락하십시오. 다른 문제가 나타나면 새로운 질문을 시작하십시오. –

+2

@EasterGamer, 완성한 후에는 [CodeReview.se]를 사용하는 것이 좋습니다. – Incomputable

관련 문제