Я не уверен, почему вы реализовали свой собственный класс стека, основанный на связанном списке. С новым. И нет удаления (поэтому создание утечек памяти) и других недостатков дизайна. Может быть, вы сделали для академических целей. Я не знаю. Если на самом деле есть причина для изобретения колеса и не использовать контейнер STL std::stack
, тогда, пожалуйста, посмотрите на интерфейс STL std::stack
и реализуйте те же функции в своем коде.
Не путайте функциональные возможности,В вашей поп-функции (которая относится к функциям стека) вы пишете о «скобках». Недостаток конструкции в том, что вы не реализовали функцию стека empty
. Перед тем, как позвонить pop
, вам следует проверить empty
.
В любом случае, я бы порекомендовал использовать std::vector
для всего этого.
В вашем коде много других проблем, но вы узнаете и узнаете.
Теперь к вашему вопросу. В основном вы отвечаете уже для себя.
То, что вы делаете, это
- Прочитайте строку
- Проверьте (с помощью bc), если в ЭТОМ и только ЭТО и НЕв других строках совпадают скобки
- После оценки этой ОДНОЙ строки (с помощью bc) переменная
stack s;
выйдет из области видимости и исчезнет (оставляя много утечек памяти) - ТогдаВы читаете следующую строку файла (забывая обо всем, что вы делали раньше)
Решение:
Вы должны определить стек в main, а затем передать его в функцию bc какссылка.
И тогда вам нужно исправить остальные ошибки. ,.