下面的一参数构造函数还可以用作默认构造函数吗?
class SomeClass
{
public:
SomeClass(const int &a = 4);
}
(假设构造函数定义正确等)
谢谢!
答案 0 :(得分:4)
是的,默认构造函数的定义允许参数具有默认值:
类
X
的默认构造函数是类X
的构造函数,对于每个非函数参数包的参数都有一个默认参数(包括大小写)没有参数的构造函数)。
(来自C ++ 1z草案)
旧词:
类
X
的默认构造函数是类X
的构造函数,无需参数即可调用。
此外,您的副本构造函数将隐式定义为默认值,因为您尚未声明一个。
没有“默认副本构造函数”之类的东西。但是“默认构造函数”和“默认副本构造函数”是有意义的。