Assume the following class declaration:
class X { int p; ... public: X( int p1 ) : p(p1) { ... } X ( const X& x1 ) { ... } X& operator= (const X& x2 ) { ... } ... // member functions etc. void merge ( X x3 ) { .... } };For each line of code below, indicate if the line is legal, what extra methods are required of class X to make it legal if it is not, and what methods of class X will be invoked in each case.
X a( 10 ), a1( 100 ); X b; X c = 12; X c1 = a1; X d( a ); X e( 5, 18 ); cout << a.p + a1.p << endl; a1 = a; d.merge( a ); X arr[ 15 ]; X f = X( -1 ) * X ( -2 );