Standard C++ Library User Guide and Tutorial
 int left = data.top(); // read next top element
 data.pop(); // pop it from stack
 switch (theOp) {
 case plus: data.push(left + right); break;
 case minus: data.push(left - right); break;
 case times: data.push(left * right); break;
 case divide: data.push(left / right); break;
 }
}
The main program reads values in reverse polish notation, invoking the calculator engine to do the
actual work:
void main() {
 int intval;
 calculatorEngine calc;
 char c;
 while (cin >> c)
 switch (c) {
 case '0': case '1': case '2': case '3': case '4':
 case '5': case '6': case '7': case '8': case '9':
 cin.putback(c);
 cin >> intval;
 calc.pushOperand(intval);
 break;
 case '+': calc.doOperator(calculatorEngine::plus);
 break;
 case '-': calc.doOperator(calculatorEngine::minus);
 break;
 case '*': calc.doOperator(calculatorEngine::times);
 break;
 case '/': calc.doOperator(calculatorEngine::divide);
 break;
 case 'p': cout << calc.currentMemory() << endl;
 break;
 case 'q': return; // quit program
 }
}










