class Expr{ protected: Expr(); }; class BinOp: public Expr{ public: /* char operation; Expr arg1, arg2;*/ BinOp(char op, Expr a1, Expr a2); }; class Const: public Expr{ public: /* int val; */ Const(int v); }; class Var: public Expr{ public: Var(char* v); }; /* Example: e=1+x main() { Expr e=BinOp('+',Const(1),Var("x")); } */