Inheritance diagram for Calculator::Operation:
Calculator has 2 stacks: Calculator::operands and Calculator::operations. The first one holds integer operand values, and the second one holds operations (either unary or binary, but in this demo I implemented only 4 simplest binary operations).
Definition at line 32 of file calculator.h.
Public Member Functions | |
Operation (Calculator *calc) | |
virtual void | operator() ()=0 |
Pure virtual operator - it's an operation itself. | |
Protected Member Functions | |
Calculator * | calc () const |
Private Attributes | |
Calculator * | c |
|
A public constructor.
|
|
Pure virtual operator - it's an operation itself. The operation code is pretty simple. Just pop up needed number of arguments using Calculator::popOperand(), perform calculation and put result back via Calculator::pushOperand( int ). Implemented in Calculator::OpPlus, Calculator::OpMinus, Calculator::OpMul, and Calculator::OpDiv.
|