<分区>
下面的单参数构造函数是否也作为默认构造函数?
class SomeClass
{
public:
SomeClass(const int &a = 4);
}
(假设构造函数定义明确等)
谢谢!
<分区>
下面的单参数构造函数是否也作为默认构造函数?
class SomeClass
{
public:
SomeClass(const int &a = 4);
}
(假设构造函数定义明确等)
谢谢!
最佳答案
是的,默认构造函数的定义是允许参数的,只要有默认值即可:
A default constructor for a class
X
is a constructor of classX
for which each parameter that is not a function parameter pack has a default argument (including the case of a constructor with no parameters).
(来自 C++1z 草案)
旧的措辞:
A default constructor for a class
X
is a constructor of classX
that can be called without an argument.
此外,你的复制构造函数将被隐式定义为默认的,因为你还没有声明一个。
没有所谓的“默认复制构造函数”。但是“默认构造函数”和“默认复制构造函数”是有意义的。
关于c++ - 在 C++ 中,如果我创建一个构造函数,它接受一个具有默认值的参数——它会用作默认(空)构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52188474/