공유 이터레이터 인터페이스 구현에 대한 질문이 있습니다. 함수가 다음과 같을 수 postix 연산자C++ 추상 기본 클래스 접미사
으로 일반적인 방법은 :
IteratorClass operator ++(int) {
IteratorClass temp = *this;
//increment stuff
return temp
}
그리고 대부분의 시간이 괜찮습니다. 내 경우에는 하나의 클래스에 대해 3 개의 반복자를 구현하려고합니다. 각 반복자는 데이터가있는 로컬 컬렉션 클래스를로드하지만 각 추출 된 반복자는 다른 방식으로로드합니다. 컬렉션 클래스는 같은과 사업자에 대한 코드의 모든 것 때문에 (후위/접두사 + +/-, *) 나는이 상속 될 것이다 구현하는 좋은 방법 생각 같은 것 :
struct iterator {
protected:
Collection collection;
public:
operator++(int);
operator++;
operator--(int);
operator--;
virtual load() = 0;
}
struct iterator1 : public iterator {
virtual load() { custom load function }
}
struct iterator2 : public iterator {
virtual load() { custom load function }
}
을
문제는 후위 연산자입니다 ... 그들은 추상적 인 유형의 객체를 생성하려고 시도하고 있습니다. 대안 또는 구조 변경에 대한 제안 사항은 무엇입니까?
어쨌든 iterator에 대해 일반적으로 후위 연산자를 사용하는 것이 좋지 않습니다. – Phil1970