php中拷贝构造函数、赋值运算符重载


Posted in PHP onJuly 25, 2012

对象的赋值与复制: 赋值:通过“ = ”运算符重载
User a(10),b;
b = a;
复制:调用复制构造函数
User b;
User a(b);
或者
User a = b;//相当于User a(b);
与赋值的区别,赋值是对一个已经存在的对象进行赋值(已经实现定义了被赋值的对象),而复制是从无到有建立一个新的对象,并使它与已有的对象相同。
浅复制与深复制: 若对象中有指针成员,在复制时,只会将该指针成员的地址复制给新建立的对象,因此,两个对象中的指针成员都指向了同一块内存区域,在释放时会出现重复释放的问题。 需要手动定义复制构造函数,在构造函数中将为指针变量分配新的内存,是不同对象的指针成员指向不同的内存区域。
用到拷贝构造函数的三种情况: 1、需要建立一个新对象,并用另一个同类对象对其进行初始化 2、函数的参数为类的对象时,在调用函数时需要建立一个实参的拷贝,按实参复制一个形参,系统是通过调用拷贝构造函数实现的 3、函数的返回值是类的对象:函数调用结束时,需要将函数中的对象复制一个临时对象,并传给该函数的调用处。

User getUser()
{  
User temp;  
return temp;
}
int main()
{  
User user = getUser();//调用getUser();
}

getUser()函数调用结束时,getUser中建立的对象temp的生命周期结束(即将销毁),所以不是将temp带回main,而是在执行return语句时,调用User类的拷贝构造函数,按temp拷贝一个新的、对象,然后将它赋值给user.
PHP 相关文章推荐
php公用函数列表[正则]
Feb 22 PHP
php中的数组操作函数整理
Aug 18 PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
Mar 13 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
Apr 17 PHP
php学习笔记(三)操作符与控制结构
Aug 06 PHP
在PHP上显示JFreechart画的统计图方法
Nov 03 PHP
PHP用反撇号执行外部命令
Apr 14 PHP
php猜单词游戏
Sep 29 PHP
php语言中使用json的技巧及json的实现代码详解
Oct 27 PHP
PHP中PDO的事务处理分析
Apr 07 PHP
PHP书写格式详解(必看)
May 23 PHP
php获取访问者浏览页面的浏览器类型
Jan 23 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
Jul 23 #PHP
php 调试利器debug_print_backtrace()
Jul 23 #PHP
全新的PDO数据库操作类php版(仅适用Mysql)
Jul 22 #PHP
php 操作数组(合并,拆分,追加,查找,删除等)
Jul 20 #PHP
php中的一些数组排序方法分享
Jul 20 #PHP
xml在joomla表单中的应用详解分享
Jul 19 #PHP
ajax在joomla中的原生态应用代码
Jul 19 #PHP
You might like
php生成略缩图代码
2012/07/16 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
php版微信数据统计接口用法示例
2016/10/12 PHP
php获取文件名称和扩展名的方法
2017/02/07 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
javascript 框架小结 个人工作经验
2009/06/13 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
2010/04/24 Javascript
jquery.validate.js插件使用经验记录
2014/07/02 Javascript
如何屏蔽防止别的网站嵌入框架代码
2015/08/24 Javascript
javascript html5实现表单验证
2016/03/01 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
2016/05/20 Javascript
javascript回到顶部特效
2016/07/30 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
JavaScript实现文件下载并重命名代码实例
2019/12/12 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
2020/01/02 Javascript
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
Python信息抽取之乱码解决办法
2017/06/29 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
最新党员思想汇报
2014/01/01 职场文书
实习老师离校感言
2014/02/03 职场文书
企业委托书范本
2014/09/13 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
党员个人自我评价
2015/03/03 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
观后感开头
2015/06/19 职场文书
九年级语文教学反思
2016/03/03 职场文书