请指出错误
class Foo{
public:explicit Foo(ing arg){......}
};
void g(Foo f){.....}
int main()
{
Foo f1;
g(f1);
g(-999);
return 0;
}
我觉得是g(f1);错了,是不是呢?因为这个构造函数是一个转型构造函数
第一个报错是因为你已经显示的定义了你的类的构造函数(系统就不会为你再加默认构造函数),所以如果要用到默认构造函数就必须再显示的定义一个.
第二个就象2楼说的那样