英语语言相关

p497

memberwise 是什么意思?

这个单词字典当然是查不到的。memberwise 和 bitwise 相对,前者是深拷贝,后者是浅拷贝。

浅拷贝:不拷贝内存数据,不会调用成员对象的构造器。

深拷贝:会拷贝内存数据,调用成员对象的构造器。


最后的这个代码示例的第二行,是否有问题呢?是否真的是 direct initialization?

p498

根据这里的说法,似乎使用了 = 操作符就会进行 copy initialization。


这里有一个这样的说法:

Similarly, when a function has a nonreference return type, the return value is used to copy initialize the result of the call operator at the call site.

这应该如何理解呢?

这个 stackoverflow 中有一个回答写得不错,

https://stackoverflow.com/questions/16731782/why-is-the-copy-constructor-called-when-we-return-an-object-from-a-method-by-val

image.png

具体表现在这个,是有两步 copy constructor. 书中指的应该是第一步 copy constructor 那个临时的变量。

那什么是临时变量呢?

上面的通过函数返回值构建的对象就是临时对象,然后,再把这个临时对象赋值给 c。