내 자신의 LinkedList 클래스 버전을 구현하려하고 있으며 상수 iterator에 대한 오버로드 메서드에 문제가 있습니다. 나는 이러한 오류가C++ : 상수 iterator에 대한 list.end() 및 list.begin() 메서드 오버로드
cout << "citer:" << endl;
for (UberList<int>::CIter it = ulist.begin(); it != ulist.end(); ++it)
{
cout << *it << " ";
}
cout << endl;
: 예를 들어,이 코드를 사용하여 목록을 인쇄 할 때 지금까지 내가 이해로
Error E2034 UberList2.cpp 532: Cannot convert 'UberList<int>::Iter' to 'UberList<int>::CIter' in function main()
Error E2094 UberList2.cpp 532: 'operator!=' not implemented in type 'UberList<int>::CIter' for arguments of type 'UberList<int>::Iter' in function main()
를, 그것은 그 보통의 끝이 반복자 방법을 시작하는 것을 의미한다 사용됩니다. 여기에 이러한 방법은 내 수업에 선언하는 방법은 다음과 같습니다
Iter begin();
Iter end();
CIter begin() const;
CIter end() const;
및
template<class T>
typename UberList<T>::Iter UberList<T>::begin()
{
Iter it;
it.curr = head;
return it;
}
template<class T>
typename UberList<T>::Iter UberList<T>::end()
{
Iter it;
it.curr = tail->next;
return it;
}
template<class T>
typename UberList<T>::CIter UberList<T>::begin() const
{
CIter it;
it.ccurr = head;
return it;
}
template<class T>
typename UberList<T>::CIter UberList<T>::end() const
{
CIter it;
it.ccurr = tail->next;
return it;
}
내가 대신 보통 사람의 상수 반복자 이러한 CONST 방법을 사용하여 내 프로그램을 강제 할 수있는 방법이 있나요를? 나는 조언을 듣게되어 기뻐. 여기
아, 그리고는 경우 하나 개의 파일 내 클래스의 코드입니다 : http://pastebin.com/Jbvv5Hht
코드가 괜찮아 보입니다. pastebin의 연산자에 'const'가 추가되었습니다. 아마도 도움이되지는 않지만 코드는 정상적으로 보입니다. – Drakosha
감사합니다.하지만이 오류는 여전히 발생합니다. ( – Chris