这怎么可能?
test t2=50
...因为t2是对象a .....所以它怎么能等于整数
使用visual studio 2008
class test
{
public :
int a,b;
test(int x=0,int y=0)
{
a=x;
b=y;
}
};
void g()
{
test t1=test(10,20);
test t2=50;
cout<<t1.a<<":"<<t1.b<<endl;
cout<<t2.a<<":"<<t2.b<<endl;
}
int main()
{
g();
system("pause");
}
答案 0 :(得分:8)
由于构造函数未定义为explicit
,编译器使用test
类中定义的构造函数通过将整数参数传递给构造函数来创建test
对象(参数{{1 }})。为避免这种情况,请将构造函数声明为x
。