case '+': NumericStack.push( a + b ); break; case '-': NumericStack.push( a - b ); break; case '*': NumericStack.push( a * b ); break; case '/': NumericStack.push( a / b ); break;

Node *root = GetParseTree();

PostfixPrintVisitor *printVisitor = new PostfixPrintVisitor; root->Accept( printVisitor ); Print( "Postfix notation: " + printVisitor->Output );

CalculationVisitor *calcVisitor = new CalculationVisitor; root->Accept( calcVisitor ); Print( "Result: " + calcVisitor->NumericStack.top() );

Zobacz też

obserwator iterator polecenie

Bibliografia Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Longman Publishing Co. Inc., 1994.

Linki zewnętrzne Szczegółowy opis wzorca wraz z przykładami

Wizytatora