fork(1) download
  1. struct Visitor { };
  2. struct Env { };
  3. struct InappropriateFunction { };
  4.  
  5. class AbsTree {
  6. public:
  7. AbsTree();
  8. virtual ~AbsTree() =0;
  9. virtual void accept(Visitor &visitor) const = 0;
  10. virtual void execute(Env &ctxt) const throw (InappropriateFunction);
  11. };
  12.  
  13. class Operation: public AbsTree{
  14. public:
  15. Operation(char oper);
  16. virtual ~Operation();
  17. virtual void accept (Visitor &visitor) const;
  18. char getOperator() const;
  19. private:
  20. char operator_;
  21. };
  22.  
  23. AbsTree::AbsTree() {}
  24. AbsTree::~AbsTree() {}
  25. void AbsTree::accept(Visitor &visitor) const{}
  26. void AbsTree::execute(Env &ctxt) const throw (InappropriateFunction) {}
  27.  
  28. Operation::Operation(char oper): operator_(oper) {}
  29. Operation::~Operation(){}
  30. void Operation::accept(Visitor &visitor) const{}
  31. char Operation::getOperator() const {
  32. return operator_;
  33. }
  34.  
  35. int main()
  36. {
  37. Operation o('x');
  38. Visitor my_visitor;
  39. o.accept(my_visitor);
  40. o.getOperator();
  41. }
Success #stdin #stdout 0s 3292KB
stdin
Standard input is empty
stdout
Standard output is empty