explicit cpp
时间: 2023-08-28 17:05:52 浏览: 99
一个cpp例子
C++中的explicit关键字用于修饰单参数构造函数,它的作用是防止隐式类型转换。当一个构造函数被声明为explicit时,只能显式调用该构造函数进行对象的初始化,不能进行隐式类型转换。
举个例子,假设有一个类A,有一个int类型的构造函数:
```cpp
class A {
public:
explicit A(int x) {
// 构造函数实现
}
};
```
如果没有explicit关键字,可以通过隐式类型转换将int类型的值赋给A类的对象:
```cpp
A obj = 10; // 隐式类型转换
```
但是如果构造函数被声明为explicit,则编译器会报错,要求显式调用构造函数:
```cpp
A obj(10); // 正确的显式调用方式
A obj = A(10); // 也可以显式地调用构造函数
```
通过使用explicit关键字,可以避免一些意外的隐式类型转换,增强代码的可读性和安全性。
阅读全文