在复制构造函数中,为什么参数需要具有与其关联的默认值?
如果没有与它们关联的默认值并且构造函数中提供了多个参数,会发生什么情况?
例如:
X(const X& copy_from_me, int = 10);
int 有一个默认值,但是:
X(const X& copy_from_me, int);
才不是。第二种情况会发生什么?
http://en.wikipedia.org/wiki/Copy_constructor http://en.wikipedia.org/wiki/Copy_constructor
复制构造函数总是采用一个参数,即对其所属类型的引用,maybe其他参数,但他们must有默认值。
复制构造函数被称为复制函数,复制构造函数的目的是通过使用相同类型的对象作为创建新类型的基础来创建该类型的对象。
标准指定复制构造函数的类型为:
T(const &T obj);
这基本上允许在按值调用函数或按值返回该类型的对象期间创建临时对象。
此语法有助于创建新对象,如下所示:
T obj1(obj2); <--------- Direct Initialization
T obj1 = obj2; <--------- Copy Initialization
如果传递给复制构造函数的附加参数不被强制具有默认值,那么使用上述语法构造对象将是不可能的。
因此严格的条件,
there maybe复制构造函数的其他参数,但它们must有默认值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)