C++ explicit keyword

| 分类 C++  | 标签 C++_keywords 

在c++中,explicit建议用于构造函数的声明,如下所示

class A {
public:
    explicit A(int);
    explicit A();
};

void doSomething(A a);

int main(int argc, char* argv[]) {
    doSomeThing(10);      //错误,因为构造函数被声明为explicit,所以int不能隐式转换成class A类型。
    doSomeThing(A(10));   //可以正确运行
}

在c++中,explicit关键字用于构造函数的声明,而不是用于构造函数的定义。通过在类构造函数的声明中使用explicit关键字,可以确保构造函数的使用者必须显式指定构造函数的类型,避免隐式转换。


上一篇     下一篇