C++关键字之explicit
这是一个只能在类内部声明构造器的关键字。被声明为explicit类型的构造器将不会被隐式调用。
例如: class X{ public: explicit X(int); //正确 explicit X(double);//正确 //…… };
explicit X::X(int) {} //错误——只能在类内部声明
一个被explicit声明的明确的构造器不能用在隐式转换中。它仅仅能构造一个对象。
例如 void f(X) {} void g(int I) { f(i);//报错 }
void h(){ X x1(1);//正确 }
f(i)报错的原因是没有int到X的隐式转化。
转载请注明原文地址: https://ju.6miu.com/read-1301606.html