What's wrong with the code? Why can't it be compiled?Code:class Test{ private: int b; public: explicit Test(int x=0):b(x){} explicit Test (const Test& ts):b(ts.b){} }; int main(){ Test ts=static_cast<Test>(1);//It's OK here Test ts2=static_cast<Test>(ts);// what's wrong here? return 0; }