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

问题描述 投票:0回答:1

以下单参数构造函数是否也可用作默认构造函数?

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

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

谢谢!

c++ constructor default-constructor
1个回答
4
投票

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

X的默认构造函数是类X的构造函数,对于该构造函数,不是函数参数包的每个参数都具有默认参数(包括不带参数的构造函数的情况)。

(来自C ++ 1z草案)

较早的措辞:

X的默认构造函数是类X的构造函数,可以在没有参数的情况下调用。


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

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

© www.soinside.com 2019 - 2024. All rights reserved.