【发布时间】:2021-10-19 14:36:46
【问题描述】:
代码示例:
class Dog
{
private:
int x;
public:
Dog()=default;
};
对比。这段代码:
class Dog
{
private:
int x;
};
“=default”的构造函数(第一个代码)和编译器创建的构造函数(如第二个代码)有什么区别?
【问题讨论】:
-
至少有一个区别:在 C++20 中,拥有用户声明的构造函数(即使您使用默认实现)将意味着您的类不再算作聚合。
-
你想知道这两个构造函数的区别(如标题所示)还是使用
=default的原因(如正文所示)。 -
您关心哪个版本的C++?不同版本的标准对行为的处理方式不同
-
这能回答你的问题吗? The new syntax "= default" in C++11
标签: c++ constructor default-constructor