explict c++
时间: 2023-11-11 14:58:43 浏览: 135
C++类和对象的基本概念笔记
explict是C++11中的一个关键字,用于修饰构造函数,表示该构造函数不能进行隐式类型转换。
举个例子,如果有一个类A和一个函数foo,如下所示:
```
class A {
public:
A(int x) {}
};
void foo(A a) {}
int main() {
foo(1);
return 0;
}
```
这段代码会编译通过,因为int类型可以隐式转换为A类型。但是如果我们在A的构造函数前加上explicit关键字,如下所示:
```
class A {
public:
explicit A(int x) {}
};
void foo(A a) {}
int main() {
foo(1);
return 0;
}
```
这段代码就会编译失败,因为1不能隐式转换为A类型。
阅读全文