美文网首页C++基础
C++ explicit关键字

C++ explicit关键字

作者: LaLa_2539 | 来源:发表于2018-07-30 17:38 被阅读0次

C++ explicit用法

C++中的explicit关键字只能用于修饰只有一个参数的类构造函数。
<font color=black>

它的作用是表明该构造函数是显示而非隐式的,跟他对应的另一个关键字是implicit,意思是隐藏的,类构造函数默认情况下即声明为implicit。


作用

禁止隐式调用类内的单参数构造函数。

  • 该关键字只能用来修饰类内部的构造函数
  • 禁止隐式调用拷贝构造函数
  • 禁止类对象之间的隐式转换

显式转换和隐式转换

显式转换:

强制转换

int a = 4;
float b = 5.56;
float c = (float) a;

隐式转换:

在转换时不给系统提示具体的显示模型,让其自动进行转换

int a = 4;
float b = 5.56;
b = a;  //隐式转换,默认把int类型转换为float类型

example

class CxString
{
    CxString (int size); //单参数构造函数
}

CxString string1(24);     (1)
CxString string2 = 10;    (2)
CxString string3 = 'c';   (3)  //size = 'c'的ASCII码

添加explicit关键字:

class CxString
{
    explicit CxString (int size); //单参数构造函数
}

CxString string1(24);     (1)
CxString string2 = 10;    (2)  //error!不可隐式转换
CxString string3 = 'c';   (3)  //error!不可隐式转换

相关文章

  • C++ explicit关键字

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

  • C++ explicit 关键字

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

  • C++中关键字explicit简析

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

  • 2020-04-16【explicit】

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

  • c++ explicit 关键字

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

  • C++ explicit

    C++中的explicit

  • explicit

    C++提供了[关键字]explicit,可以阻止不应该允许的经过[转换构造函数]进行的隐式转换的发生。声明为exp...

  • C++ explicit关键字与隐式类型转换

    C++ explicit关键字只能用于类内部的构造函数的声明上,且只能作用于“单个参数的构造函数”或“有多个参数,...

  • C++11/14/17

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

  • C++中的explicit关键字

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

网友评论

    本文标题:C++ explicit关键字

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