在 c++ 中,如果我创建一个接受一个具有默认值的参数的构造函数 - 它会用作默认(空)构造函数吗?

In c++, if I create a constructor that takes one argument which has a default value - will that serve as a default (empty) constructor?

本文关键字:一个 构造函数 参数 默认 如果 c++ 创建 默认值      更新时间:2023-10-16

下面的单参数构造函数是否也用作默认构造函数?

class SomeClass
{
public:
SomeClass(const int &a = 4);
}

(假设构造函数定义良好等(

谢谢!

是的,默认构造函数的定义允许参数,只要它们具有默认值:

X的默认构造函数是类X的构造函数,其中每个不是函数参数包的参数都有一个默认参数(包括没有参数的构造函数的情况(。

(摘自C++1Z草案(

较旧的措辞:

X的默认构造函数是类X的构造函数,无需参数即可调用。


此外,复制构造函数将被隐式定义为默认值,因为您尚未声明一个。

没有"默认复制构造函数"这样的东西。 但是"默认构造函数"和"默认复制构造函数"是有意义的。

相关文章: