7.3.6 Ограниченные Интерфейсы

7.3.6 Ограниченные Интерфейсы

Класс slist – довольно общего характера. Иногда подобная общность не требуется или даже нежелательна. Ограниченные вды списков, такие как стеки и очереди, даже более обычны, чем сам обобщенный список. Такие структуры данных можно задать, не описав базовый класс как открытый. Например, очередь целых можно определить так:

#include «slist.h»

class iqueue : slist (* //предполагается sizeof(int)«=sizeof(void*)

public: void put(int a) (* slist::append((void*)a); *) int det() (* return int(slist::get()); *) iqueue() (**) *);

При таком выводе осуществляются два логически разделеных действия: понятие списка ограничивается понятием очереди (сводится к нему), и задается тип int, чтобы свести понятие очереди к типу данных очередь целых, iqueue. Эти два действия можно выполнять и раздельно. Здесь первая часть – это список, ограниченный так, что он может использоваться только как стек:

#include «slist.h»

class stack : slist (* public: slist::insert; slist::get; stack() (**) stack(ent a) : (a) (**) *);

который потом используется для создания типа «стек укзателей на символы»:

#include «stack.h»

class cp : stack (* public: void push(char* a) (* slist::insert(a); *) char* pop() (* return (char*)slist::get(); *) nlist() (**) *);

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Процессы, ограниченные скоростью ввода-вывода и скоростью процессора

Из книги автора

Процессы, ограниченные скоростью ввода-вывода и скоростью процессора Процессы можно классифицировать как те, которые ограничены скоростью ввода-вывода (I/O-bound), и те, которые ограничены скоростью процессора (processor-bound). К первому типу относятся процессы, которые большую


4.3. Интерфейсы

Из книги автора

4.3. Интерфейсы Интерфейс (interface) служит для спецификации параметров модели, которые видимы извне без указания их внутренней структуры. В языке UML интерфейс является классификатором и характеризует только ограниченную часть поведения моделируемой сущности. Применительно


5.3. Интерфейсы .

Из книги автора

5.3. Интерфейсы . Интерфейсы являются элементами диаграммы вариантов использования и были рассмотрены в главе 4. Однако при построении диаграммы классов отдельные интерфейсы могут уточняться и в этом случае для их изображения используется специальный графический символ


10.2. Интерфейсы

Из книги автора

10.2. Интерфейсы Следующим элементом диаграммы компонентов являются интерфейсы. Последние уже неоднократно рассматривались ранее, поэтому здесь будут отмечены те их, особенности, которые характерны для представления на диаграммах компонентов. Напомним, что в общем


Глава 8 Открытые сети, ограниченные умы

Из книги автора

Глава 8 Открытые сети, ограниченные умы За комплиментами, которыми американские дипломаты осыпали “Твиттер” за его “неоценимую роль” в иранских массовых протестах 2009 года, осталось незамеченным одно в высшей степени занятное обстоятельство. Позволяя иранцам


Акции, ограниченные по времени и количеству

Из книги автора

Акции, ограниченные по времени и количеству «Каждому второму скидка»Когда в вашей нише наравне с вами за внимание клиента конкурирует много сайтов, вы можете использовать нехитрый прием под названием «Каждому второму скидка».Он позволяет повысить доверие к самому


Глава 2. Интерфейсы

Из книги автора

Глава 2. Интерфейсы void *pv = malloc(sizeof(int)); int *pi = (int*)pv; (*pi)++; free(pv); Аноним,1982 В предыдущей главе было показано несколько приемов программирования на C++, позволяющих разрабатывать двоичные компоненты повторного использования, которые со временем могут быть модернизированы. По


Интерфейсы и IDL

Из книги автора

Интерфейсы и IDL Определения методов в IDL являются просто аннотированными аналогами С-функций. Определения интерфейсов в IDL требуют расширения по сравнению с С, так как С не имеет встроенной поддержки этого понятия. Определение интерфейса в IDL начинается с ключевого слова


Ограниченные базы данных

Из книги автора

Ограниченные базы данных Транзакции над несколькими базами данных могут использовать много ресурсов сервера. В ESQL Firebird предоставляет языковую поддержку в форме предложения USING для ограничения баз данных, к которым транзакциям разрешен доступ. DSQL не предоставляет


Интерфейсы и упаковка

Из книги автора

Интерфейсы и упаковка Herb Sutterr объяснил, что "интерфейс" класса (подразумевая, функциональные возможности, обеспечиваемые классом) включает также внешние функции, связанные с классом. Им также показано, что правила области видимости имен в C++ поддерживают эти изменения


7.3 Альтернативные Интерфейсы

Из книги автора

7.3 Альтернативные Интерфейсы После того, как описаны средства языка, которые относяся к производным классам, обсуждение снова может вернуться к стоящим задачам. В классах, которые описываются в этом раздле, основополагающая идея состоит в том, что они однажды нписаны, а


Альтернативные интерфейсы

Из книги автора

Альтернативные интерфейсы Стандартный интерфейс операционной системы Windows всегда был для сторонних программистов примером неудачного оформления. Невзрачная цветовая гамма и отсутствие каких-либо визуальных эффектов привели к появлению на рынке программного


50 Интерфейсы разнообразные

Из книги автора

50 Интерфейсы разнообразные Разнообразие не только политически корректно. Оно полезно. Оно полезно в командах, способствуя творческому сотрудничеству, а также на рынке, где слово «разнообразие» стало еще одним заклинанием в лексиконе рекламных агентов и представителей.


У6.9 Ограниченные стеки

Из книги автора

У6.9 Ограниченные стеки Измените приведенную в этой лекции спецификацию стеков так, чтобы она описывала стеки ограниченной емкости. (Указание: введите емкость как явную функцию-запрос и сделайте функцию put