effective c++中说到的default构造函数,指的是一个可被调用而不带任何实参者。这样的构造函数要不没有参数,要不就是每个参数都有缺省值。
如果构造函数被声明为explict,这可阻止它们被用来执行隐式类型转换,但它们仍可被用来进行显示类型转换。
class B {
public:
explict B(int x=0, bool b=true);
};
void doSomething(B object);
B bObj1;
doSomething(bObj1); //ok
B bObj2(28); //ok
doSomething(28); //error
doSomething(B(28)); //ok