c++中的explicit的作用
时间: 2023-08-11 16:22:12 浏览: 118
C++中explicit作用示例代码
5星 · 资源好评率100%
在 C++ 中,`explicit` 是一个关键字,用于修饰类的构造函数。当一个构造函数被 `explicit` 修饰时,它就不能被用于隐式转换,只能被用于显式转换。
具体来说,当一个构造函数被声明为 `explicit` 时,如果我们想把一个对象转换为该类的对象,就必须使用显式转换来完成这个操作,而不能使用隐式转换。这就可以避免一些意想不到的类型转换。
举个例子,假设我们有一个类 `myClass`,它有一个 `int` 型的构造函数,并且这个构造函数被声明为 `explicit`。那么,下面的代码就是合法的:
```
myClass a(10); // 直接调用构造函数
myClass b = myClass(20); // 显式调用构造函数
```
而下面的代码就是不合法的:
```
myClass c = 30; // 隐式调用构造函数,因此会编译错误
```
因为构造函数被声明为 `explicit`,所以不能进行隐式转换。
阅读全文