Skip to content

关键字

explicit

禁止隐式转换

explicit 关键字
class A {
public:
    explicit A(int x) { /* ... */ } // 禁止隐式转换
};

void func(A a) {}

int main() {
    A a1(10);     // 正确:显式调用
    A a2 = A(20); // 正确:显式构造
    A a3 = 30;    // 错误:explicit 禁止隐式转换
    func(40);     // 错误:explicit 禁止隐式转换
    func(A(50));  // 正确:显式构造
}