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

arj*_*kar 2 c++ copy-constructor

我有一个关于复制构造函数的问题.

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

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

Mik*_*our 7

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

C++ 11 12.8/2:A类非模板构造器X是一个拷贝构造如果其第一个参数的类型为X&,const X&,volatile X&const volatile X&,并且或者没有其他参数或者所有其他参数具有默认参数

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

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

A(const A& obj, int x=42, char y='A')
Run Code Online (Sandbox Code Playgroud)

那么它将是一个复制构造函数.