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 相关文章推荐
一个可以找出源代码中所有中文的工具
Oct 25 PHP
分享下页面关键字抓取components.arrow.com站点代码
Jan 30 PHP
Yii的CDbCriteria查询条件用法实例
Dec 04 PHP
php实现的IMEI限制的短信验证码发送类
May 05 PHP
老版本PHP转义Json里的特殊字符的函数
Jun 08 PHP
Thinkphp单字母函数使用指南
May 08 PHP
关于PHP文件的自动运行方法分析
May 13 PHP
php中strtotime函数性能分析
Nov 20 PHP
CI框架表单验证实例详解
Nov 21 PHP
php实现购物车产品删除功能(2)
Jul 23 PHP
Laravel框架路由管理简单示例
May 07 PHP
Yii框架日志操作图文与实例详解
Sep 09 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基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
php常用日期时间函数实例小结
2019/07/04 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
利用javascript解决图片缩放及其优化的代码
2012/05/23 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
js中匿名函数的创建与调用方法分析
2014/12/19 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
快速使用node.js进行web开发详解
2017/04/26 Javascript
深入理解React高阶组件
2017/09/28 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
[08:53]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS 选手采访
2021/03/11 DOTA
Python单元测试简单示例
2018/07/03 Python
python实现随机漫步算法
2018/08/27 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
Python算法中的时间复杂度问题
2019/11/19 Python
python实现代码审查自动回复消息
2021/02/01 Python
HTML5 Canvas——用路径描画线条实例介绍
2013/06/09 HTML / CSS
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
会计出纳岗位职责
2013/12/25 职场文书
秘书英文求职信范文
2014/01/31 职场文书
大学校园活动策划书
2014/02/04 职场文书
动员大会主持词
2014/03/20 职场文书
中学生寄语大全
2014/04/03 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
Python内置的数据类型及使用方法
2022/04/13 Python