gpt4 book ai didi

c++ - 复制构造函数参数

转载 作者:可可西里 更新时间:2023-11-01 18:05:32 25 4
gpt4 key购买 nike

在复制构造函数中,为什么参数需要关联默认值?如果没有与它们关联的默认值并且在构造函数中提供了多个参数,会发生什么情况?

例如:

X(const X& copy_from_me, int = 10);

int 有一个默认值,但是这个:

X(const X& copy_from_me, int);

没有。在第二种情况下会发生什么?

http://en.wikipedia.org/wiki/Copy_constructor

最佳答案

复制构造函数总是采用一个参数,即对其所属类型的引用,还有可能其他参数,但它们必须具有默认值。

复制构造函数被称为复制函数,复制构造函数的目的是通过使用相同类型的对象作为创建新类型的基础来创建类型的对象。

标准指定复制构造函数的类型:

T(const &T obj);

这基本上允许在按值调用函数或按值返回类型的对象期间创建临时对象。
此语法有助于创建新对象:

T obj1(obj2);      <--------- Direct Initialization
T obj1 = obj2; <--------- Copy Initialization

如果传递给复制构造函数的附加参数不强制具有默认值,则无法使用上述语法构造对象。
因此条件严格,
复制构造函数可能还有其他参数,但它们必须具有默认值。

关于c++ - 复制构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9066052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com