以下两个代码段介绍了将变量初始化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);?是否存在它们不相同的情况?