explicit 关键字
时间: 2023-07-18 12:40:08 浏览: 92
C++ Explicit关键字详细解析
在 C++ 中,explicit 是一个关键字,用于修饰构造函数,它的作用是禁止隐式转换。如果一个构造函数被声明为 explicit,那么它就不能在隐式转换中使用,只能用于显式地创建对象。这样可以避免一些不必要的类型转换,提高程序的安全性和可读性。例如:
```c++
class A {
public:
explicit A(int x) { ... }
};
void func(A a) { ... }
int main() {
A obj(1); // 正确,显式调用构造函数
A obj2 = 2; // 错误,不能进行隐式转换
func(3); // 错误,不能进行隐式转换
func(A(3)); // 正确,显式调用构造函数
return 0;
}
```
阅读全文