Лекция: Реализация класса TBasicIterator
class TListBasicIterator
{
private:
virtual void nothing() = 0;
protected:
Elem<T> *basic_cur, *basic_first;
public:
TListBasicIterator();
TListBasicIterator(const TList<T>& l);
~TListBasicIterator(void);
};
Реализация класса TArrayIterator
template<typename T>
class TArrayIterator :
public TListBasicIterator<T>
{
private:
virtual void nothing() {};
public:
TArrayIterator(void);
~TArrayIterator(void);
TArrayIterator(const TList<T>& l);
int Count();
T& operator[](int pos);
};
Реализация класса TLineIterator
template<typename T>
class TLineIterator: public TListBasicIterator<T>
{
private:
Elem<T> *cur, *first;
virtual void nothing() {}
public:
TLineIterator();
TLineIterator(const TList<T>& l);
TLineIterator<T>& operator++();
T& operator*();
TLineIterator<T>& operator~();
bool operator!();
~TLineIterator(void);
};
Реализация класса TReverseIterator
template<typename T>
class TReverseIterator :
public TListBasicIterator<T>
{
private:
Elem<T> *cur, *first;
virtual void nothing() {}
public:
TReverseIterator(void);
TReverseIterator(const TList<T>& l);
~TReverseIterator(void);
TReverseIterator<T>& operator++();
T& operator*();
TReverseIterator<T>& operator~();
bool operator!();
};