C++11 - CTOR() = default 和空 CTOR() 有啥区别? [复制]

Posted

技术标签:

【中文标题】C++11 - CTOR() = default 和空 CTOR() 有啥区别? [复制]【英文标题】:C++11 - What is the difference between CTOR() = default and empty CTOR()? [duplicate]C++11 - CTOR() = default 和空 CTOR() 有什么区别? [复制] 【发布时间】:2018-04-24 09:59:14 【问题描述】:

C++11 引入了新的关键字default 来强制创建默认构造函数:

class MyClass 
    MyClass() = default; // <==
    MyClass(int num);
;

我找不到在空构造函数上使用它的原因。

class MyClass 
    MyClass()  // <==
    MyClass(int num);
;

有人能告诉我吗?

【问题讨论】:

【参考方案1】:

= default; 构造函数是 trivial,从来没有用户提供的构造函数是 - 甚至是空的。

【讨论】:

如果可能,请注意= default; 构造函数默认为constexpr 和/或noexcept 可能也很重要。

以上是关于C++11 - CTOR() = default 和空 CTOR() 有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 C++11 中“删除”复制 ctor/assignment

调用复制 ctor 而不是移动 ctor - 编译器可以发出警告吗?

Singleton类无法找到ctor,但编译,运行并保留实例未初始化

c++11 统一初始化

c++11 统一初始化

使用c'ctor,d'ctor和覆盖