欢迎来到代码驿站!

PHP代码

当前位置:首页 > 软件编程 > PHP代码

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

时间:2021-05-05 15:36:11|栏目:PHP代码|点击:
对象的赋值与复制: 赋值:通过“ = ”运算符重载
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代码

下一篇:PHP+AjaxForm异步带进度条上传文件实例代码

本文标题:php中拷贝构造函数、赋值运算符重载

本文地址:http://www.codeinn.net/misctech/115098.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有