/* Implement the classes: - Node - Number - Operator - Addition - Subtraction - Multiplication - Division Node should have the following (pure virtual) members: - double evaluate() + Calculate the expression stored in 'this' - void print(std::ostream& os) + print the expression represented in 'this' - void print_tree(std::ostream& os, int depth) + print a textual representation of the expression tree - Node* clone() + return a a new instance of the expression stored in 'this' */