Объектно-ориентированное программирование: учебное пособие / В. Н. Казагачев.

-stack ( ) { delete [ ] s; } /* Деструктор */ void reset ( ) { top = EMPTY; } /* Очистить стек */ void push ( Type c ) { s [ ++top ] = c; } Type pop ( ) { return (s [top—] } Type top_of ( ) { return ( s [top ] } BOOLEAN empty ( ) { return BOOLEAN ( top == EMPTY ) } BOOLEAN full ( ) { return BOOLEAN ( top == max len ) } }; Параметрический полиморфизм. Шаблоны. Правило. C++ использует ключевое слово template для того, чтобы обеспечить параметрический полиморфизм. Параметрический полиморфизм позволяет одному и тому же коду использоваться относительно различных типов, где тип - параметр тела кода. Параметрический полиморфизм особенно полезен при определении контейнерных классов. Обработка данных в контейнерном классе имеет одну и ту же форму, независимо от типа. Шаблоны определения класса и шаблоны определения функции дают возможность многократно использовать код простым способом, безопасным по отношению к типу, который позволяет компилятору автоматизировать процесс реализации типа. Полиморфизм обеспечивает многократное использование кода. Шаблон класса Пример реализации шаблона stack template <class TYPE> class stack { enum { EMPTY=-1}; TYPE *s; int len, top; public: stack: len(1000) { s=new TYPE[1000]; top=EMPTY; } stack(int size): len(size) { s=new TYPE[size]; top=EMPTY; } ~stack() { delete s; } void resetQ { top=EMPTY; } void push(TYPE c) { s[++top]=c; } TYPE pop() { return s[top~]; } TYPE top of() { return s[topJ; } boolean emptyO { return boolean(top=EMPTY); }

RkJQdWJsaXNoZXIy MTExODQxMg==