c++ version ofthe project 4 in MIT open course 6.001-spring-2005 SICP.