다른 반복자를 캡슐화하고 범위 검사를 수행하는 반복기를 구현하려고합니다. 그러므로 내가 너무 좋아하는 반복자에서 연장 해요 : 나는 범위 검사를 수행하기 위해 생성자에 전달되는 반복자를 사용하려면C++에서 이터레이터 확장하기
template<typename ITERATOR_T>
class r_iterator : public ITERATOR_T {
//...
r_iterator (ITERATOR_T begin, ITERATOR_T end) {
this->begin = begin;
this->end = end;
}
};
. 제 아이디어는 "this"-iterator (즉, r_iterator)가 가리키는 요소를 생성자의 "begin"반복자가 가리키는 요소로 설정하는 것입니다. 예를 들어, 연산자 ++와 같은 특정 메서드를 재정의 할 수 있도록 범위 검사를 수행 한 다음 확장중인 클래스의 super 메서드를 호출합니다.
따라서 "this"-iterator (r_iterator)가 몇 가지 STL Iterator 클래스를 확장한다고 가정하여 요소를 어떻게 든 설정할 수 있는지 여부를 알고 싶습니다.
불행히도 C++ 참조에서 이에 대한 정보를 찾을 수 없습니다.
감사하고 당신이
은'부스트 : iterator_range'와 비슷한 소리. – Rapptz
불행히도 스스로 만들어야합니다. – ben
상속 대신 위임하지 않는 이유는 무엇입니까? –