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