explicit C++
时间: 2024-06-14 15:03:36 浏览: 89
C++ explicit通俗解释
explicit是C++中的一个关键字,它只能用于修饰只有一个参数的类构造函数。它的作用是表明该构造函数是显示的,而非隐式的。如果一个类构造函数被explicit修饰,那么在使用该构造函数进行类型转换时,必须显式地进行转换,不能进行隐式转换。如果一个类构造函数没有被explicit修饰,那么在使用该构造函数进行类型转换时,可以进行隐式转换。
下面是一个使用explicit关键字的例子:
```c++
class MyInt {
public:
explicit MyInt(int val) : m_val(val) {}
int getVal() const { return m_val; }
private:
int m_val;
};
void printInt(const MyInt& myInt) {
std::cout << myInt.getVal() << std::endl;
}
int main() {
MyInt myInt = 10; // 编译错误,不能进行隐式转换
MyInt myInt2(20); // 正确,显式地进行转换
printInt(myInt2); // 正确,传递参数时也需要显式地进行转换
return 0;
}
```
阅读全文