以下两个代码段介绍了将变量初始化b
为a
. 第一个代码段使用复制初始化(使用 初始化=
)初始化变量。假设类Apple
被简单地定义为一个空类:class Apple {};
Apple a;
Apple b = a;
第二个代码段也使用复制初始化来初始化变量。虽然在初始化中复制的是a
.
Apple a;
Apple b = Apple(a);
盲读时,似乎一个副本发生在Apple(a)
,另一个发生在Apple b = ...
。相反,重写复制构造函数Apple
以在复制上打印某些内容表明在Apple b = Apple(a)
.
这两个语句是否Apple b = a;
相同Apple b = Apple(a);
?是否存在它们不相同的情况?