Задание: на вход программы подается строка, которая содержит латинские символы и два специальных символа: # и @. Символ # означает, что необходимо стереть последний символ во входной строке, символ @ означает, что нужно стереть все символы перед ним. Необходимо написать программу, которая будет считывать исходную строку и выдавать результат после обработки спец. символов.
Для решения задачи необходимо написать стек на массиве и указателях. Обе реализации должны поддерживать общий интерфейс стека со следующими операциями:
push — добавить символ в стек;
pop — удалить последний символ из стека;
makeEmpty — очистить стек.
Важно: в стеке символы будут в обратном порядке. В ответе необходимо перевернуть результат.
Формат ввода
Первая строка состоит из одного символа "a" или "l" - тип реализации стека ("a" - array, "l" - list). Вторая строка содержит входную последовательность, в которой могут встречаться спец. символы: # и @.
Я создал родительский класс Stack и два наследных класса для реализации на указателях и на массиве.
https://pastebin.com/NmHK0fyy
Не могу понять, как создавать объекты при вводе
То есть, если в условии создаем стек того класса, символ которого мы ввели, то как дальше реализовать методы, если неизвестно, какой стек мы создадим ?