Добавил:
Tushkan
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы (2) / laba13 / class
.h//---------------------------------------------------------------------------
#ifndef classH
#define classH
#include <iostream.h>
//---------------------------------------------------------------------------
template <class TYPE> class BiList {
public: class iterator;
private:
class BiListItem {
private:
TYPE data;
BiListItem *next;
BiListItem *pred;
BiListItem();
friend class BiList;
friend class iterator;
};
class BiListError{
public:
virtual void Message() {cout << "Memory error!"};
};
public: class iterator{
private:
BiListItem* data;
BiListItem** parent;
public:
friend class BiList;
iterator& operator ++(int);
iterator& operator --(int);
bool operator ==(const iterator& c) const {return (*this).data == c.data;};
bool operator !=(const iterator& c) const {return (*this).data != c.data;};
TYPE& operator *() {return (*(*this).data).data;};
iterator& remove();
iterator& insert(TYPE);
};
private: BiListItem *pbegin;
friend class iterator;
public:
BiList() {pbegin = NULL; cout <<"Create\n";}
bool push_back(TYPE);
bool push_front(TYPE);
iterator& begin();
iterator& end();
bool empty(){ return pbegin == NULL;}
void clear();
int size();
};
#endif