explicit关键字的作用
时间: 2023-08-29 18:05:49 浏览: 105
extern关键字的作用
`explicit` 关键字用于修饰类的构造函数,用于防止隐式转换。当构造函数声明为 `explicit` 时,其不能用于隐式转换,只能用于显式的创建对象。
例如,如果有一个类 `A` 和一个构造函数 `A(int x)`,那么可以通过下面两种方式创建对象:
```c++
A a1 = 10; // 隐式转换
A a2(10); // 显式转换
```
但是,如果将构造函数声明为 `explicit`,则只能通过显式转换来创建对象:
```c++
explicit A(int x);
A a1 = 10; // 错误:不能隐式转换
A a2(10); // 正确:显式转换
```
使用 `explicit` 关键字可以避免一些隐式转换导致的潜在问题,并使代码更加明确和易于理解。
阅读全文