C++中的explicit怎么使用

   2025-02-13 5060
核心提示:在C++中,关键字explicit用于修饰单参数构造函数,用来防止隐式转换。当单参数构造函数使用了explicit关键字修饰后,该构造函数

在C++中,关键字explicit用于修饰单参数构造函数,用来防止隐式转换。当单参数构造函数使用了explicit关键字修饰后,该构造函数只能被显式调用,而不能在隐式转换中调用。

下面是使用explicit关键字的示例:

class MyInt {public:    explicit MyInt(int num) : value(num) {}    int getValue() const {        return value;    }private:    int value;};void printInt(const MyInt& num) {    std::cout << num.getValue() << std::endl;}int main() {    MyInt myNum(5); // 直接调用构造函数    printInt(myNum); // 隐式转换为MyInt对象,通过显式调用的方式传递给printInt函数    // printInt(5); // 错误,不能隐式转换为MyInt对象    printInt(MyInt(10)); // 可以显式地调用构造函数    return 0;}

在上面的例子中,MyInt类有一个带有explicit关键字的单参数构造函数,这意味着不能将一个整数隐式转换为MyInt对象。只有通过显式调用构造函数的方式,才能创建MyInt对象。在main函数中,可以看到使用隐式转换调用printInt函数是错误的,而通过显式调用构造函数的方式可以传递MyInt对象给printInt函数。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言