【发布时间】:2016-12-19 09:20:07
【问题描述】:
可能有人已经问过这个问题,但是在谷歌上搜索“默认”、“默认”、“显式”等并没有给出好的结果。但无论如何。
我已经知道显式定义的默认构造函数(即不带参数)和显式定义的默认构造函数(即使用关键字default)之间存在一些差异,来自这里:The new keyword =default in C++11
但是显式定义的默认构造函数和隐式定义的构造函数之间有什么区别(即当用户根本不编写它时)?
class A
{
public:
A() = default;
// other stuff
};
对
class A
{
// other stuff
};
想到的一件事是,当存在非默认构造函数时,用户还必须显式定义默认构造函数。但是还有其他区别吗?
编辑:我最感兴趣的是知道是否有充分的理由编写 A() = default; 而不是完全省略构造函数(当然,假设它是该类唯一明确定义的构造函数)。
【问题讨论】:
-
Gooling for "C++ default" "C++ delete" "C++ explicit" 给出了很好的结果。你试过了吗?在进行研究时,您还应该超过三个 Google 关键字。阅读、学习、理解。
-
@LightnessRacesinOrbit 你是真的吗......这些只是例子,我没有准确地谷歌或只有这 3 个。在谷歌搜索时,例如“C++ 默认”总体上给出了一些好的结果,我没能找到关于 this exact question 的内容。
标签: c++ constructor default-constructor