> -- Александр Ильин писал(а):
> Шаблоны нужны в том случае, если вы захотите непременно хранить в стеке базовый тип (INTEGER, REAL) или напрямую использовать готовую запись, не являющуюся расширением того абстрактного типа. Без шаблонов для этого понадобится создание простого объекта-обёртки:Плюс, если стек основан на шаблоне, то он гарантированно будет содержать только элементы указанного типа, а если основан на абстрактном типе, то в стек можно пометить любого наследника. Следовательно, при получении элемента из стека потребуется приведение типа с проверкой, и на этапе компиляции нет проверки того, что вы только нужные элементы туда помещаете (такую проверку можно реализовать в рантайм).
Да, понятно. Объщий базовый класс и принцип подстановки.
Шаблоны работают на этапе компиляции и реализуют макроподстановку с проверкой синтаксиса (синтаксические макросы по терминологии Кемпбелл-Келли).