2014-02-21 63 views
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的某个地方继承 的东西?

+0

简短的回答是:No. –

+0

不,你不能继承*功能*,因为这对你构建的每个容器都会有所不同。 – Brian

+2

typedef T *迭代器,你完成了 –

回答

相关问题