Cтраница 3
Очередь представляет собой хороший пример абстрактного типа данных. Очередь предлагает своим клиентам четко определенное поведение. Клиенты ставят некие элементы в очередь по одному за раз, используя операцию поставить в очередь, и получают их по одному за раз по запросу, используя операцию исключить из очереди. В принципе очередь может быть бесконечно длинной. Элементы возвращаются из очереди в соответствии с дисциплиной - первый вошел - первый вышел ( first-in, first-out - FIFO), т.е. первый элемент, вставленный в очередь, первым же ее покидает. [31]
Ада обеспечивают средства для реализации абстрактных типов данных. В языке Паскаль, например, понятие файла встроено в этот язык программирования. [32]
В теории программирования фрейм называют абстрактным типом данных. [33]
Предположим, имеется пара определенных пользователем абстрактных типов данных а, р и соответствующая конкретная пара типов а, р, которые служат реализацией аир соответственно. Функция / поэтому является конкретной реализационной версией /, которую мы ищем. [34]
Применение классов языка C для реализации абстрактных типов данных с соблюдением общепринятого правила, гласящего, что интерфейс состоит из определений общедоступных функций, не является идеальным вариантом, поскольку интерфейс и реализация разделяются не полностью. Когда мы изменяем реализацию, нам приходится перекомпилировать программы-клиенты. [35]
Напишите интерфейс, который дает определение абстрактного типа данных первого класса для обобщенных элементов ( см. раздел 4.8) и построить реализацию, в которой, как и в предыдущем упражнении, элементами являются комплексные числа. [36]
Эти исследования сочетаются с работами по абстрактным типам данных. [37]
Второй подход к формализации рассматривает систему как абстрактный тип данных, когда система специфицируется через операции, которые предоставляет ее интерфейс, а внутреннее состояние системы объявляется невидимым. Этот подход используется для алгебраических спецификаций. [38]
Объявите класс Vehicle ( Машина) как абстрактный тип данных. [39]
Подобный аспект рассмотрения данных связывают с понятием абстрактного типа данных. Если точно определить внешние спецификации абстрактного типа данных, указав аргументы процедуры и результат, то можно использовать этот тип данных, не определяя внутреннюю организацию данных. Более подробно вопросы абстрагирования данных на примере стека будут рассмотрены в гл. [40]
На этом занятии также было представлено объявление абстрактных типов данных и способы создания абстрактного класса с помощью чистых виртуальных функций. [41]
В строках 5 - 14 объявляется класс абстрактного типа данных Shape с тремя ч - чистыми виртуальными функциями. Впрочем, для того чтобы класс стал ADT, достаточно было объявить в нем хотя бы один из методов как чистую виртуальную функцию. [42]
Указатели часто используются для организации динамических структур данных и абстрактных типов данных. Если язык допускает явное открепление объектов, непреднамеренное разыменование висячих указателей может привести к сбою операционной системы. В C и Фортране 90 такая ситуация возможна. [43]
Определение класса объединяет код допустимых операций с абстрактным типом данных и скрывает детали их реализации. Инкапсулированный код можно безопасно модифицировать, не изменяя при этом те фрагменты программы, в которых он используется. Образно говоря, инкапсуляция создает барьер, отделяющий часть кода программы от внешнего мира. Внешним миром в этом случае является остальная часть программы, она взаимодействует с инкапсулированным кодом через его интерфейс. До тех пор, пока этот интерфейс остается неизменным, неизменным остается и код программы, даже если программист изменил инкапсулированный код. Это упрощает процесс модификации программы. Для такого взаимодействия используется защищенный ( protected) интерфейс. Например, в объектно-ориентированном языке C программист явно описывает, какие компоненты объекта являются общими, какие защищенными, а какие - скрытыми ( private), видимыми только в описании объекта. [44]
Объясните, почему важно устранение отождествления1 в преобразовании абстрактных типов данных. [45]