美文网首页程序员
【c++11关键字】 explicit

【c++11关键字】 explicit

作者: 小鱼号的代码日记 | 来源:发表于2020-10-20 21:12 被阅读0次
/*
 * c++11关键字
 * explicit
 * 拒绝隐式转换
 * 小鱼号的代码日志
*/
#include <QCoreApplication>
#include <iostream>
using namespace  std;
struct A
{
    A(int){}
    A(int,int){}
    operator int() const {return 0;}
};
struct B
{
    explicit B(int){}
    explicit B(int,int){}
    explicit operator int() const {return 0;}
};
void handleA(A a)
{
}
void handleB(B a)
{
}
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    A a1 = 1;
    //B b1 = 1;  ///BAD
    A a2(2);
    B b2(2);
    A a3 = {4,5};
    //B b3 = {4,5}; ///BAD
    int na1 = a1;
    //int nb1 = b1;    ///BAD
    int na2 = static_cast<int>(a1);
    //int nb2 = static_cast<int>(b1); ///BAD
    A a4 = (A)1;
    B b4 = (B)1; //OK
    handleA(a1);
    handleA(1);
    handleB(b2);
    //handleB(2);///BAD
    return a.exec();
}

相关文章

  • 【c++11关键字】 explicit

  • 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 修饰符后将阻...

网友评论

    本文标题:【c++11关键字】 explicit

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