我们可以将参数传递给C ++中的复制构造函数

时间:2014-09-16 07:17:18

标签: c++ copy-constructor

我对复制构造函数有疑问。

如下定义的构造函数,我们称之为复制构造函数还是只是重载的构造函数?

A(const A& obj,int x, char y='A')

1 个答案:

答案 0 :(得分:7)

因此定义了复制构造函数:

  

C ++ 11 12.8 / 2 :类X的非模板构造函数是复制构造函数,如果其第一个参数的类型为X&,{{1 }},const X&volatile X&,并且没有其他参数,或者所有其他参数都有默认参数

换句话说,它必须可以使用单个参数调用 - 对要复制的对象的引用 - 但可以有额外的,可选的参数。

您的示例不符合此要求,因为它有两个必需参数。如果第二个参数具有默认值:

const volatile X&

然后它将是一个复制构造函数。