Курсовая работа: Об’єктно-орієнтована програма обліку продуктового магазину
};
protected:
Iterator the_first() {return Iterator(list->next,this);}
Iterator the_last() {return Iterator(list->prev,this);}
Iterator record();
virtual Data* create(){return new Data;};
public: Table();
virtual ~Table();
void clear();// очистити таблицю
void save(FILE *f);// зберегти таблицю
void zvit(FILE *f);
void load(FILE *f);// завантажити таблицю
};
template<class MyData> class MyTable : public Table
{
public:
class Iterator : public Table::Iterator
{
friend class MyTable;
Iterator(const Table::Iterator &p):Table::Iterator(p){}
public: Iterator(){}
MyData& operator*() {return *(MyData*)data();}// доступ до полів MyData
MyData* operator->() {return (MyData*)data();}// доступ до полів MyData
Iterator next() {return Iterator(the_next());}// повертає ітератор на наступний елемент
Iterator prev() {return Iterator(the_prev());}// повертає ітератор на попередній елемент
};
protected:
virtual Data* create(){return new MyData;}
public: Iterator record() {return Iterator(Table::record());}// створює новий запис і повертає ітератор на нього