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 15 PHP
PHP中几种常见的超时处理全面总结
Sep 11 PHP
php使用ob_start()实现图片存入变量的方法
Nov 14 PHP
Codeigniter购物车类不能添加中文的解决方法
Nov 29 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
php实现用于计算执行时间的类实例
Apr 18 PHP
PHP 错误处理机制
Jul 06 PHP
PHP实现上传多图即时显示与即时删除的方法
May 09 PHP
Yii 2.0在Grid中格式化时间方法示例
Jun 06 PHP
laravel框架中间件 except 和 only 的用法示例
Jul 12 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
Mar 23 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
May 02 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
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
2015/08/28 PHP
php+html5+ajax实现上传图片的方法
2016/05/14 PHP
php简单截取字符串代码示例
2016/10/19 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
Jquery ajax传递复杂参数给WebService的实现代码
2011/08/08 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
jquery仿微信聊天界面
2017/05/06 jQuery
JS实现页面内跳转的简单代码
2017/09/03 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
vux uploader 图片上传组件的安装使用方法
2018/05/15 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
[01:24:16]2018DOTA2亚洲邀请赛 4.6 全明星赛
2018/04/10 DOTA
使用python统计文件行数示例分享
2014/02/21 Python
详细介绍Python中的偏函数
2015/04/27 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
2017/11/30 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
2019/08/20 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
Django实现celery定时任务过程解析
2020/04/21 Python
介绍一下gcc特性
2015/10/31 面试题
幼儿园家长评语
2014/02/10 职场文书
网络编辑岗位职责范本
2014/02/10 职场文书
领导党性分析材料
2014/02/15 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
大学生见习报告范文
2014/11/03 职场文书
中学生自我评价范文
2015/03/03 职场文书
给朋友的道歉短信
2015/05/12 职场文书
民事调解书范文
2015/05/20 职场文书
国庆节主题班会
2015/08/15 职场文书