2014-02-21 64 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 *迭代器,你完成了 –

回答

相關問題