++ assignment 2 f