Используя приемы обобщенного программирования,
реализуйте абстрактную структуру данных типа "стек".
С помощью шаблонов C++ обеспечьте возможность
хранения в стеке данных любого типа (и в любом
количестве). Реализуйте базовые функции стека:
а) вставку элемента в вершину - push();
б) извлечение элемента из вершины - pop();
в) полную очистку стека - clear();
г) возвращение числа элементов - size();
д) проверка на пустоту - empty();
Обеспечьте безопасность использования шаблона
путем ограничения доступа к внутренним данным.
Дополнительно реализуйте: конструктор по умолчанию,
конструктор копии, деструктор, оператор присваивания.
Продемонстрируйте работу шаблона на примерах.