struct X { int I; X(int); X operator+(int); }; struct Y { int X; Y(X); Y operator+(X); operator int(); }; extern X operator*(X, Y); extern int f(X); X x = 1; Y y = x; int i = 2; int main() { i+10; y+10; y+10*y; x+y+i; x*x+i; f(7); f(y); y+y; 106+y; };修改达个程序,使之能够运行并打印出每个合法表达式的值。