> -- Валерий Лаптев писал(а):
> Я правильно понимаю, что ... возможно написать родовой модуль, например, стека с элементом - абстрактной записью. Это и будет параметр - тип.Правильно вы понимаете.> -- Валерий Лаптев писал(а):
> Плохо, конечно, это в документации описано, но вроде получается, что и шаблоны не очень нужны.Шаблоны нужны в том случае, если вы захотите непременно хранить в стеке базовый тип (INTEGER, REAL) или напрямую использовать готовую запись, не являющуюся расширением того абстрактного типа. Без шаблонов для этого понадобится создание простого объекта-обёртки:## Код:
```
TYPE MyRealItem = RECORD (AbstactStack.Item) value: REAL END;
```
Плюс, если стек основан на шаблоне, то он гарантированно будет содержать только элементы указанного типа, а если основан на абстрактном типе, то в стек можно пометить любого наследника. Следовательно, при получении элемента из стека потребуется приведение типа с проверкой, и на этапе компиляции нет проверки того, что вы только нужные элементы туда помещаете (такую проверку можно реализовать в рантайм).