C++关键字之explicit

    xiaoxiao2025-08-10  9

    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
    最新回复(0)