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

【C++对象模型】构造函数语意学之二 拷贝构造函数

时间:2014-05-20 08:07:10      阅读:322      评论:0      收藏:0      [点我收藏+]

标签:c   a   int   数据   c++      

 

关于默认拷贝构造函数,有一点和默认构造函数类似,就是编译器只有在【需要的时候】才去合成默认的拷贝构造函数。

在什么时候才是【需要的时候】呢?

也就是类不展现【bitwise copy semantics】时,即不展现【逐位次拷贝】时,才会合成默认拷贝构造函数。

所谓的【逐位次拷贝】,也就是简单的赋值,不管类内的数据成员是int还是char*指针,都是简单的赋值,这叫【逐位次拷贝】。

 

那什么请下不展现【逐位次拷贝】呢?

有四种情况:

①类中有一个类对象成员,而该类对象成员声明了一个默认拷贝构造函数(不管这个默认拷贝构造函数是显式声明的还是编译器合成的)

②类继承自一个基类,而该基类有一个默认拷贝构造函数(不管这个默认拷贝构造函数是显式声明的还是编译器合成的)

③类声明了一个或多个虚函数时

④类派生自一个继承链,其中有一个或多个虚基类时

 

  

 

【C++对象模型】构造函数语意学之二 拷贝构造函数,布布扣,bubuko.com

【C++对象模型】构造函数语意学之二 拷贝构造函数

标签:c   a   int   数据   c++      

原文地址:http://www.cnblogs.com/cuish/p/3726884.html

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