Альтернативные Интерфейсы
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: доклад по информатике, курсовая работа по менеджменту
| Добавил(а) на сайт: Shklovskij.
1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата
Альтернативные Интерфейсы
После того, как описаны средства языка, которые относятся к производным классам, обсуждение снова может вернуться к стоящим задачам. В классах, которые описываются в этом разделе, основополагающая идея состоит в том, что они однажды написаны, а потом их используют программисты, которые не могут изменить их определение. Физически классы состоят из одного или более заголовочных файлов, определяющих интерфейс, и одного или более файлов, определяющих реализацию. Заголовочные файлы будут помещены куда-то туда, откуда пользователь может взять их копии с помощью директивы #include. Файлы, определяющие реализацию, обычно компилируют и помещают в библиотеку.
Интерфейс
Рассмотрим такое написание класса slist для однократно связанного списка, с помощью которого можно создавать как однородные, так и неоднородные списки объектов тех типов, которые еще должны быть определены. Сначала мы определим тип ent:
typedef void* ent;
Точная сущность типа ent несущественна, но нужно, чтобы в нем мог храниться указатель. Тогда мы определим тип slink:
class slink {
friend class slist;
friend class slist_iterator;
slink* next;
ent e;
slink(ent a, slink* p) { e=a; next=p;}
};
В одном звене может храниться один ent, и с помощью него реализуется класс slist:
class slist {
friend class slist_iterator;
slink* last; // last->next - голова списка
public:
int insert(ent a); // добавить в голову списка
int append(ent a); // добавить в хвост списка
ent get(); // вернуться и убрать голову списка
void clear(); // убрать все звенья
slist() { last=0; }
slist(ent a) { last=new slink(a,0); last->next=last; }
~slist() { clear(); }
};
Хотя список очевидным образом реализуется как связанный список, реализацию можно изменить так, чтобы использовался вектор из ent"ов, не повлияв при этом на пользователей. То есть, применение slink"ов никак не видно в описаниях открытых функций slist"ов, а видно только в закрытой части и определениях функций.
Рекомендуем скачать другие рефераты по теме: большой реферат, реферат условия.
Категории:
1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата