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实现WEB动态网页静态
Oct 09 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
Feb 03 PHP
php新建文件自动编号的思路与实现
Jun 27 PHP
微信扫描二维码登录网站代码示例
Dec 30 PHP
PHP入门之常量简介和系统常量
May 12 PHP
PHP使用memcache缓存技术提高响应速度的方法
Dec 26 PHP
Laravel 5 学习笔记
Mar 06 PHP
PHP入门教程之数学运算技巧总结
Sep 11 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
Aug 10 PHP
ThinkPHP框架实现FTP图片上传功能示例
Apr 08 PHP
php curl操作API接口类完整示例
May 21 PHP
PHP反射学习入门示例
Jun 14 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判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
jquery indexOf使用方法
2013/08/19 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
Jquery实现的一种常用高亮效果示例代码
2014/01/28 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
node.js学习总结之调式代码的方法
2014/06/25 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
使用vue引入maptalks地图及聚合效果的实现
2020/08/10 Javascript
python基础教程之python消息摘要算法使用示例
2014/02/10 Python
python基于queue和threading实现多线程下载实例
2014/10/08 Python
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
Python实现连接postgresql数据库的方法分析
2017/12/27 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
Python 实现域名解析为ip的方法
2019/02/14 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
Python实现爬取并分析电商评论
2020/06/19 Python
树莓派升级python的具体步骤
2020/07/05 Python
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
EJB的几种类型
2012/08/15 面试题
大学生实习自我鉴定
2013/12/11 职场文书
《四季》教学反思
2014/04/08 职场文书
一年级学生评语
2014/04/23 职场文书
2014年党支部书记工作总结
2014/12/04 职场文书
2015年社区计生工作总结
2015/04/21 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
员工聘用合同范本
2015/09/21 职场文书
2019军训心得体会
2019/06/27 职场文书