LINUX.ORG.RU

История изменений

Исправление 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() вызывает хранимое число.