c++ explicit 关键字

用法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class A {
explicit A(int a) {}
}

A a(1);


错误:
A a = 1;
错误:
A a(1, 2);
错误:
A a = {1, 2};
错误:
A a{1, 2};
错误:
A a = (A)1;
错误:
A a = (A){1, 2};

这样在创建对象的时候,只能使用显式的方式创建,不能使用隐式的方式创建。
这样可以避免一些不必要的错误。对创建对象的方式进行限制。