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

时间:2018-09-05 15:12:21

标签: c++ constructor default-constructor

下面的一参数构造函数还可以用作默认构造函数吗?

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

(假设构造函数定义正确等)

谢谢!

1 个答案:

答案 0 :(得分:4)

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

  

X默认构造函数是类X的构造函数,对于每个非函数参数包的参数都有一个默认参数(包括大小写)没有参数的构造函数)。

(来自C ++ 1z草案)

旧词:

  

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


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

没有“默认副本构造函数”之类的东西。但是“默认构造函数”和“默认副本构造函数”是有意义的。