arj*_*kar 2 c++ copy-constructor
我有一个关于复制构造函数的问题.
如下定义的构造函数,我们称之为复制构造函数还是仅仅是重载的构造函数?
A(const A& obj,int x, char y='A')
因此定义了复制构造函数:
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)
那么它将是一个复制构造函数.