История изменений
Исправление quiet_readonly, (текущая версия) :
В простейшем случае можно просто хранить в одной переменной результат предыдущего выражения, а в другой - enumeration value, соответствующее операции.
Чуть более сложный способ описан у Бьёрна Страуструпа, «Язык программирования C++».
Можно сделать парсер и дерево, дерево может состоять, например, из указателей на базовый класс Node с методом value(). У Node два сабкласса: BinaryExpression, у которого метод value() вызывает методы value() у дочерних узлов, а затем применяет к ним хранимую в узле операцию, и Constant, у которого value() возвращает хранимое число.
Исходная версия quiet_readonly, :
В простейшем случае можно просто хранить в одной переменной результат предыдущего выражения, а в другой - enumeration value, соответствующее операции.
Чуть более сложный способ описан у Бьёрна Страуструпа, «Язык программирования C++».
Можно сделать парсер и дерево, дерево может состоять, например, из указателей на базовый класс Node с методом value(). У Node два сабкласса: BinaryExpression, у которого метод value() вызывает методы value() у дочерних узлов, а затем применяет к ним хранимую в узле операцию, и Constant, у которого value() вызывает хранимое число.