美文网首页
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;
    }

相关文章

  • C++11/14/17

    关键字:auto, nullptr, explicit, final, override, constexpr,...

  • C++ explicit 关键字

    C++ explicit 关键字 最近学习的过程中经常看到explicit这个关键字, 于是去了解了一下. 没好好...

  • C++中关键字explicit简析

    C++中关键字explicit的作用 最近学习Qt经常会遇到explicit关键字,那么简单的说一下吧。 在C++...

  • 2020-04-16【explicit】

    explicit关键字详解 C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明...

  • c++的一些不常见关键字

    1. explicit关键字 explicit用来防止由构造函数定义的隐式转换,比如:class Base bas...

  • 编译出错

    查找错误关键字 Caused by Unable to find explicit activity class ...

  • explicit 关键字

    1. explicit介绍 类的构造函数被声明为explicit方式,可以用来阻止隐式类型转换,但被声明为expl...

  • explicit 关键字

      explicit关键字只能用于修饰只有一个参数的类构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函...

  • explicit关键字

    含义 explicit 清楚地 implicit 隐藏的 用来修饰类的构造函数,添加explicit 修饰符后将阻...

  • [cpp deep dive] 构造函数与explicit

    explicit explicit关键字只能修饰构造函数,其余地方不起作用. 单参数构造函数会起一个作用,即会令该...

网友评论

      本文标题:explicit关键字

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