Объявление родового класса

Объявление родового класса

По соглашению родовой параметр обычно, использует имя G (от Generic). Это неформальное правило. Если нужны еще родовые параметры, они будут названы H, I и т.д.

Согласно синтаксису, формальные родовые параметры заключаются в квадратные скобки, следующие за именем класса, подобно синтаксису параметризованного АТД в предыдущей лекции. Например:

indexing

description: "Стек элементов произвольного класса G"

class STACK [G] feature

count: INTEGER

-- Количество элементов в стеке

empty: BOOLEAN is

-- Есть ли элементы?

do ... end

full: BOOLEAN is

-- Стек заполнен?

do ... end

item: G is

-- Вершина стека

do ... end

put (x: G) is

-- Втолкнуть x в стек.

do ... end

remove is

-- Вытолкнуть элемент из стека.

do ... end

end -- class STACK

Формальный родовой параметр G можно использовать в объявлениях класса не только для результата функций (как в item) и формальных аргументов подпрограмм (как в put), но и для атрибутов и локальных сущностей класса.

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

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

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

Использование родового класса

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Использование родового класса Клиент может использовать родовой класс для объявления собственных сущностей, задающих стек. В этом случае в момент объявления следует задать фактический тип элементов стека - фактический родовой параметр, например:sp: STACK [POINT]Если у класса


Операции над сущностями родового типа

Из книги MySQL: руководство профессионала автора Паутов Алексей В

Операции над сущностями родового типа В родовом классе C [G, H, ...] рассмотрим сущность, чей тип - один из формальных родовых параметров, например x типа G. Когда класс используется клиентом для объявления сущностей, G, разумеется, может представлять любой тип. Поэтому любая


У10.3 Использование своего формального родового параметра фактически как чужого

Из книги VBA для чайников автора Каммингс Стив

У10.3 Использование своего формального родового параметра фактически как чужого Сконструируйте пример, в котором подпрограмма родового класса C [G] вызывает подпрограмму, объявленную в другом родовом классе D [G], имеющую формальный параметр типа


Ограничение родового параметра

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

Ограничение родового параметра Эти наблюдения дают решение. Мы должны оперировать исключительно терминами классов и типов.Потребуем, чтобы любой фактический параметр, используемый классом VECTOR (в других примерах по аналогии), был типом, поставляемым с множеством


5.2.9.1. Объявление курсоров

Из книги C++ для начинающих автора Липпман Стенли

5.2.9.1. Объявление курсоров DECLARE cursor_name CURSOR FOR select_statementЭта инструкция объявляет курсор. Много курсоров может быть объявлено в подпрограмме, но каждый курсор в данном блоке должен иметь уникальное имя.Инструкция SELECT не может иметь предложение


Объявление переменных

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

Объявление переменных Как уже говорилось в главе 6, объявление - это VBA-оператор, с помощью которого вы сообщаете компилятору о своих намерениях использовать именованный объект и явно описываете тип этого объекта. Операторы объявлений чаще всего используются для


Объявление констант

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

Объявление констант Для объявления констант используется ключевое слово Const: Const cstrPetsName As String = "Пушок" Const cDateTarget Date As Date = #5/26/2000# Const cboolUp As Boolean = True Все вполне аналогично объявлению переменных, за исключением того, что при объявлении константы необходимо указать ее значение.


Объявление переменных класса

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

Объявление переменных класса Для объявления переменных, которые понадобятся в нескольких свойствах или методах, используйте раздел Declarations в самом начале модуля класса. Всегда объявляйте эти переменные как локальные ( Private ), ведь объекты в основном предназначены для


Объявление тега

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

Объявление тега Объявление типа структуры, объединения или перечислимого типа имеет такую же синтаксическую форму, как и объявление переменной этих типов, однако в объявлении типа идентификатор переменной (а в общем случае описатель) опущен. Именем типа структуры,


Объявление typedef

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

Объявление typedef Синтаксис:typedef <спецификация типа> <описатель> {,<описатель>…];Объявление typedef синтаксически аналогично объявлению переменной или функции, за исключением того, что вместо спецификации класса памяти записывается ключевое слово typedef и отсутствует


Объявление функции

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

Объявление функции Объявление функции определяет ее имя, тип возвращаемого значения, класс памяти и может также задавать тип некоторых или всех аргументов функции. Детальное описание синтаксиса объявлений функции дано в разделе 3.5. В разделе 3.6 рассмотрена зависимость


Объявление данных

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

Объявление данных Если непосредственно за ключевым словом near, far или huge следует идентификатор, то это значит, что соответствующий элемент данных будет размещен в стандартном сегменте (для near) или может быть размещен в другом сегменте данных (для far или huge). Например,


Объявление функций

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

Объявление функций Правила применения модификаторов near и far в объявлениях функций аналогичны правилам применения их в объявлениях данных. Если непосредственно за модификатором следует имя функции, то данное ключевое слово определяет, в каком сегменте будет размещена


13.1.5. Объявление и определение класса

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

13.1.5. Объявление и определение класса О классе говорят, что он определен, как только встретилась скобка, закрывающая его тело. После этого становятся известными все члены класса, а следовательно, и его размер.Можно объявить класс, не определяя его. Например:class Screen; //


18.5.1. Объявление виртуального базового класса

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

18.5.1. Объявление виртуального базового класса Для указания виртуального наследования в объявление базового класса вставляется модификатор virtual. Так, в данном примере ZooAnimal становится виртуальным базовым для Bear и Raccoon:// взаимное расположение ключевых слов public и virtual//