美文网首页
explicit关键字

explicit关键字

作者: 不学不知道 | 来源:发表于2020-10-18 10:49 被阅读0次

    含义

    • explicit 清楚地
    • implicit 隐藏的
    • 用来修饰类的构造函数,添加explicit 修饰符后将阻止类构造函数的隐式自动转换
    • 默认是implicit, 可以进行隐式类型转换。
    • explicit关键字只对有一个参数的类构造函数有效, 如果类构造函数参数大于或等于两个时, 是不会产生隐式转换的, 所以explicit关键字也就无效了

    作用

    • 阻止单参数的构造函数的隐式类型转换
        #include <iostream>
        using namespace std;
        // explicit函数的介绍!!!
        // explicit函数的作用:explicit构造函数是用来防止隐式转换的
        class Test1{
            public:
                Test1(int n){  // 普通隐式的构造函数
                    num = n;
                }
            private:
                int num;
        };
    
        class Test2{
            public:
                explicit Test2(int n){   //explicit(显式)构造函数
                    num = n;
                }
            private:
                int num;
        };
    
        int main(){
            Test1 t1 = 12;  // 隐式调用其构造函数,成功
            Test2 t2 = 12;  // 编译错误,不能隐式调用其构造函数
            Test2 t3(12);    //  显式调用成功
            return 0;
        }
    

    相关文章

      网友评论

          本文标题:explicit关键字

          本文链接:https://www.haomeiwen.com/subject/jfaqmktx.html