美文网首页
C++中关键字explicit简析

C++中关键字explicit简析

作者: fishming | 来源:发表于2019-08-03 12:55 被阅读0次

C++中关键字explicit的作用

最近学习Qt经常会遇到explicit关键字,那么简单的说一下吧。

在C++中,如果一个类中只有一个参数的构造函数,C++允许一种特殊的声明变量的方式。在这种情况下,可以直接将一个对应于构造函数参数类型的数据直接赋值给类变量,编译器在编译时会自动进行类型转换,将对应于构造函数参数类型的数据转换为类的对象。如果在构造函数参数类型的数据转换为类的对象。如果在构造函数前加上explicit修饰词,则会禁止这种自动转换。在这种情况下,即将对英语构造函数的参数类型的数据直接赋值给类变量,编译器也会报错。

例如,下面将举个例子

class Students
{
public:
  float GPA;
  explicit Students(float gpa);
  {
    GPA=gpa;
  }
};
​
void fun(void)
{
  Students s1(4.0);
  Students *s2 = new Students(3.8);
  Students s3 = 3.2;
}

这段 C++ 程序定义了一个类Students ,包含一个构造函数, 这个构造函数只包含一个浮点型参数GPA ,可用于在构造类时初始化GPA变量。
然后定义了一个函数fun,在这个函数中我们用三种方式分别创建了三个学生。

注意第三种的特殊性。C/C++是一种强类型语言,不同的数据类型是不能随意转换的,如果要进行类型转换,必须进行显式强制类型转换(转换构造函数)。但是第三种构造方式确实是可行的,这就是explicit表达式的意义所在。

相关文章

  • C++中关键字explicit简析

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

  • C++ explicit关键字

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

  • 2020-04-16【explicit】

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

  • C++ explicit 关键字

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

  • C++ explicit

    C++中的explicit

  • C++中的explicit关键字

    转载说明:本作者转载于reference用于自我学习和复查,大家请去reference支持原作者。 首先, C++...

  • C++ 中的 explicit 关键字

    为什么需要 explicit 想要明白 explicit 就必须得搞清楚「转换函数」这一个基本概念。 什么是转换函...

  • c++ explicit 关键字

    explicit的作用是用来声明类构造函数是显示调用的,而非隐式调用,所以只用于修饰单参构造函数。因为无参构造函数...

  • C++构造函数前面添加explicit关键字的作用

    C++中的 explicit关键字主要是用来修饰类的构造函数,表明该构造函数是显式的,禁止单参数构造函数的隐式转换...

  • 面试笔试

    待查 析构函数、动态绑定、常用设计模式、UML图、C++关键字、sizeof、复制构造函数 面试 针对简历中写的每...

网友评论

      本文标题:C++中关键字explicit简析

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