代码点读机 / C++ / explicit

explicit C++ · 关键字

构造函数修饰符,禁止编译器用单个实参进行隐式类型转换;想构造必须显式调用。

怎么用

explicit 构造函数(参数);

小例子

class A {
public:
  explicit A(int){}
};
// A a = 5; // 编译报错
A b(5);

编译结果

A b(5) 成功构造

提醒:单参数构造函数和转换构造函数建议加 explicit,避免意外转换

官方文档:https://en.cppreference.com/w/cpp/language/explicit

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← C++全部词条