码迷,mamicode.com
首页 > 编程语言 > 详细

深入探索c++对象模型->2.2 Copy Constructor的构造操作

时间:2016-08-21 18:18:43      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:

一、只有当class不展现出bitwise copy semanties时,编译器才会为class生成copy constructor。那么当什么时候回出现非bitwise copy呢?

  1、当class内含一个member object而后者的class声明有一个copy constructor时(不论是显示声明或是被合成得到的);

  2、当class继承自一个base class而后者存在一个copy constructor时。

  3、当class声明了一个或多个virtual functions时:当一个base class object以其derived class的object内容做初始化操作时,其vptr复制操作必须保证安全。

  4、当class派生自一个继承串链,其中有一个或多个virtual base classes时。必须保证“位置的正确性”,而“Bitwise copy constructor”可能会破坏这个位置,所以编译器必须合成出自己的。

二、被合成出来的copy constructor中,如整数、指针、数组等等的nonclass members也都会被复制。

深入探索c++对象模型->2.2 Copy Constructor的构造操作

标签:

原文地址:http://www.cnblogs.com/linux-hp/p/5792973.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!