我对复制构造函数有疑问。
如下定义的构造函数,我们称之为复制构造函数还是只是重载的构造函数?
A(const A& obj,int x, char y='A')
答案 0 :(得分:7)
因此定义了复制构造函数:
C ++ 11 12.8 / 2 :类
X
的非模板构造函数是复制构造函数,如果其第一个参数的类型为X&
,{{1 }},const X&
或volatile X&
,并且没有其他参数,或者所有其他参数都有默认参数
换句话说,它必须可以使用单个参数调用 - 对要复制的对象的引用 - 但可以有额外的,可选的参数。
您的示例不符合此要求,因为它有两个必需参数。如果第二个参数具有默认值:
const volatile X&
然后它将是一个复制构造函数。