Final answer:
The code 't2 = t1;' after the construction of 'Test t1, t2;' invokes the assignment operator, not the copy constructor. The assignment operator is used because t2 has already been created and is being assigned the value of t1.
Step-by-step explanation:
In the given code Test t1, t2; t2 = t1;, after the initial construction of t1 and t2 objects, the operation t2 = t1 invokes the assignment operator.
The default constructor is called when the objects t1 and t2 are initially declared. The copy constructor would be invoked if we were creating a new object as a copy of an existing object, for example, Test t3 = t1;. However, since t2 is already created, and we are simply assigning the value of t1 to t2, the assignment operator is what gets called in this scenario.
Answer: b) Assignment operator