美文网首页C++ 11
015 = default 的含义

015 = default 的含义

作者: 赵者也 | 来源:发表于2020-02-17 10:18 被阅读0次
struct SalesData
{
    SalesData() = default;
    SalesData(const std::string &s) : bookNo(s) {}

    std::string bookNo;
    unsigned unitsSold = 0;
    double revenue = 0;
};

首先请明确一点:因为该构造函数不接受任何实参,所以它是一个默认构造函数。我们定义这个构造函数的目的仅仅是因为我们既需要其他形式的构造函数,也需要默认的构造函数,我们希望这个函数的作用完全等同于之前使用的合成默认构造函数。

在 C++ 11 新标准中,如果我们需要默认的行为,那么可以通过在参数列表后面写上 = default 来要求编译器生成构造函数。其中,= default 既可以和声明一起出现在类内部(内联),也可以作为定义出现在类外部(非内联)。

注意:
上面的默认构造函数之所以对 SalesData 有效,是因为我们为内置类型的数据成员提供了初始值。如果我们的编译器不支持类内初始值,那么你的默认构造函数就应该使用构造函数初始值列表来初始化类的每个成员。

相关文章

  • 015 = default 的含义

    首先请明确一点:因为该构造函数不接受任何实参,所以它是一个默认构造函数。我们定义这个构造函数的目的仅仅是因为我们既...

  • 4.default的含义

    1.default是缺省默认的意思,default在switch语句中不管放在哪都是从第一个case开始执行,当所...

  • !default 与 & 与 !global

    一、 !default !default用于变量,含义是:如果这个变量被声明赋值了,那就用它声明的值,否则就用这个...

  • java包与控制权限和c++对比

    相同点:public,protected,private含义一致不同点: java多一个default关键字 ja...

  • 简书周刊015发布

    《简书周刊015》epub下载地址《简书周刊015》豆瓣阅读地址《简书周刊015》多看阅读地址《简书周刊015》拇...

  • android java 小型知识点

    1.JDK和JRE的区别 2.final修饰的作用 3.多态 4.default的含义 5.java中重载与重写的...

  • RN export的那些事儿

    1 使用 export default 的区别 有default和没有default的区别在于:有default在...

  • DEFAULT

  • =default

    使用 =default 来获得默认的构造函数、拷贝控制函数、析构函数 特别的: 这样我们就可以不用显式的构造,而直...

  • default

    Java 8的接口上的default method最初的设计目的是让已经存在的接口可以演化——添加新方法而不需要原...

网友评论

    本文标题:015 = default 的含义

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