c++ explicit的作用
时间: 2023-11-11 16:11:48 浏览: 92
C++中explicit作用示例代码
5星 · 资源好评率100%
explicit的作用是强制编译器只能使用显式构造函数进行类型转换,禁止使用隐式类型转换,从而提高代码的可读性和安全性。在C++中,explicit关键字可以用来修饰构造函数,表示该构造函数只能被显式调用,禁止隐式类型转换。例如:
```c++
class Test {
public:
explicit Test(int num) { // 只能显式调用
cout << "Test constructor called" << endl;
}
};
int main() {
Test t1(1); // 正确,显式调用
Test t2 = 2; // 错误,禁止隐式转换
Test t3 = Test(3); // 正确,显式调用
return 0;
}
```
在上面的例子中,由于Test的构造函数被标记为explicit,所以只能通过显式调用构造函数来创建Test对象,不能使用隐式类型转换。这样可以避免一些意外的类型转换,提高代码的安全性。
阅读全文