Default Memberwise Initializtion 和Bitwise Copy Semantics 的区别

来源:互联网 发布:测试软件第二版 编辑:程序博客网 时间:2024/05/18 03:49
比如有下面的两个对象a,b
A a,b;
如果有a=b;
如果a=b实施的是bitwise copy semantics,就是说编译器生成的伪代码是memcpy(&b,&a,sizeof(a)).
如果是Default MemberWise Initializetion,就是一个个成员进行复制.

如果是上面的理解,那么bitwise copy semantics就是Default MemberWise Initialization在一些特殊情况下的优化。

而Default member Initialization就是一般情况下的default copy constructor.

    重点理解的是,在什么情况下需要编译器合成一个Copy Constructor