首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
拷贝构造函数
时间:
2016-08-01 19:00:44
阅读:
121
评论:
0
收藏:
0
[点我收藏+]
标签:
拷贝构造函数的参数一定要是本类对象的引用,为什么?原因在待会说
拷贝构造函数的调用时机:
1)在定义对象时用本类对象初始化新定义的对象
2)本类对象作为函数参数时,调用函数时,实参对象会对形参进行初始化,那么就需要调用拷贝构造函数。(这也是为什么拷贝构造函数参数必须是本类对象的引用,因为如果形参时本类对象,那么在调用拷贝构造函数时,实参对形参赋值时又会调用拷贝构造函数,出现递归调用拷贝构造函数,并且一直递归下去)
3)本类对象作为函数返回值,返回时创建一个临时对象(调用构造函数),用返回的对象初始化临时对象,会调用拷贝构造函数。然后临时对象赋值给主函数中的对象,接着会析构临时对象(调用析构函数)。
拷贝构造函数显式定义时机:
当类的构造函数中有动态申请的空间时,需要显式定义一个拷贝构造函数,实现“深拷贝”,即对新对象重新申请同样大小的动态存储空间,并把已知对象的动态存储空间的内容复制到新对象的动态存储空间。
因为当类的数据成员中有动态申请的数据空间,如果不定义拷贝构造函数,而使用类中默认的拷贝构造函数,对象会进行“浅拷贝”,拷贝后,即两个对象的指针会指向同一个内存空间,最后在析构对象时,会对同一个内存空间析构两次,出现运行错误。
拷贝构造函数
标签:
原文地址:http://www.cnblogs.com/beaglebone/p/5726694.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!