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的某個地方繼承 的東西?
簡短的回答是:No. –
不,你不能繼承*功能*,因爲這對你構建的每個容器都會有所不同。 – Brian
typedef T *迭代器,你完成了 –