1
크기에 제한이있는 컨테이너의 템플릿입니다.반복자 항목을 상속하는 방법이 있습니까
template <class T, int MAXSIZE>
class svector {
class iterator : public std::iterator<std::input_iterator_tag, value_type> {
public:
iterator(T* cptr);
iterator(const iterator& mit);
bool operator==(const iterator& rhs) const;
bool operator!=(const iterator& rhs) const;
T operator*();
iterator& operator++();
iterator operator++(int);
protected:
T* eleptr;
};
svector();
svector(const svector& vec);
virtual ~svector();
svector& operator=(const svector& rhs);
iterator begin();
iterator end();
// more
};
보시다시피 std :: iterator를 서브 클래 싱하는 반복기가 있습니다. 그러나이 "마커"클래스에서 상속받을 수는 없으며 여기 을 모두 용감하게 구현했습니다. 거기에 STL 어딘가에서 물건을 상속의 방법이 있나요?
짧은 대답은 : –
아니요, 당신이 빌드하는 컨테이너마다 다를 것이기 때문에 * 기능 *을 상속받을 수 없습니다. – Brian
typedef T * iterator and your done done –