In this question, you will be working with a somewhat artificial variation of the Pair class. The main modification is that the first and seconddata members are not the actual values, but pointers to the values. Thus -- at constructor time -- the arguments (integers) sent to the constructor are not placed into the data members; rather two integers are dynamically allocated and their pointer assigned to the first and second data members. Since we have data members that are pointers, and we are allocating dynamic memory, the canonical form ('rule of three') must be used. The name of the class is Pair. Since this requires the canonical form, the usual functions become: The usual rule: The user of the class interacts with obejects of the class using integers; the fact that there are pointers internally is completely hidden. Thus the constructor accepts integers, not pointers to integers; similarly getFirst and getSecond return the integers, not the pointers to integer data members.