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数组对百万数据进行排除重复数据的实现代码
Jun 08 PHP
smarty 缓存控制前的页面静态化原理
Mar 15 PHP
php中防止SQL注入的最佳解决方法
Apr 25 PHP
php读取mysql的简单实例
Jan 15 PHP
CI(CodeIgniter)框架中的增删改查操作
Jun 10 PHP
php使用递归函数实现数字累加的方法
Mar 16 PHP
php技术实现加载字体并保存成图片
Jul 27 PHP
理解PHP中的Session及对Session有效期的控制
Jan 08 PHP
PHP操作mysql数据库分表的方法
Jun 09 PHP
PHP 获取指定地区的天气实例代码
Feb 08 PHP
PDO::rollBack讲解
Jan 29 PHP
laravel 操作数据库常用函数的返回值方法
Oct 11 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
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
关于PHP中的Class的几点个人看法
2006/10/09 PHP
基于PHP常用函数的用法详解
2013/05/10 PHP
PHP异常处理浅析
2015/05/12 PHP
如何利用PHP实现上传图片功能详解
2020/09/24 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
js中bool值的转换及“&&”、“||”、 “!!”详解
2017/12/21 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
[07:27]DOTA2卡尔工作室 英雄介绍水晶室女篇
2013/06/21 DOTA
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
python实现简易内存监控
2018/06/21 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
Python requests上传文件实现步骤
2020/09/15 Python
荣耀商城:HIHONOR
2020/11/03 全球购物
介绍一下SQL Server的全文索引
2013/08/15 面试题
四个太阳教学反思
2014/02/01 职场文书
电子工程专业毕业生求职信
2014/03/14 职场文书
律师授权委托书范本
2014/10/07 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
初中生考试作弊检讨书
2014/12/14 职场文书
2015年12.4全国法制宣传日活动总结
2015/03/24 职场文书
2016年春节慰问信息
2015/03/25 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
java开发双人五子棋游戏
2022/05/06 Java/Android