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
具体表现在这个,是有两步 copy constructor. 书中指的应该是第一步 copy constructor 那个临时的变量。
那什么是临时变量呢?
上面的通过函数返回值构建的对象就是临时对象,然后,再把这个临时对象赋值给 c。