什么时候调用复制构造函数(拷贝构造函数)
来源:互联网 发布:激战2诺恩捏脸数据 编辑:程序博客网 时间:2024/05/22 11:34
原文:Slyar Home (www.slyar.com)
这个问题不是疑问了,查了一下国外网站,总结一下。假设Person是一个类,复制构造函数的调用会在以下几种情况下发生:
1、对象在创建时使用其他的对象初始化
Person p(q); //此时复制构造函数被用来创建实例p
Person p = q; //此时复制构造函数被用来在定义实例p时初始化p
2、对象作为函数的参数进行值传递时
f(p); //此时p作为函数的参数进行值传递,p入栈时会调用复制构造函数创建一个局部对象,与函数内的局部变量具有相同的作用域
需要注意的是,赋值并不会调用复制构造函数,赋值只是赋值运算符(重载)在起作用
p = q; //此时没有复制构造函数的调用!
简单来记的话就是,如果对象在声明的同时将另一个已存在的对象赋给它,就会调用复制构造函数;如果对象已经存在,然后将另一个已存在的对象赋给它,调用的就是赋值运算符(重载)
默认的复制构造函数和赋值运算符进行的都是"shallow copy",只是简单地复制字段,因此如果对象中含有动态分配的内存,就需要我们自己重写复制构造函数或者重载赋值运算符来实现"deep copy",确保数据的完整性和安全性。
0 0
- 什么时候调用复制构造函数(拷贝构造函数)
- 什么时候调用拷贝构造函数
- 拷贝构造函数什么时候调用?
- 拷贝构造函数什么时候调用?
- 拷贝构造函数什么时候调用?
- 复制构造函数&&赋值函数(何时调用,什么时候调用)
- 什么时候会调用“拷贝构造函数”
- 复制构造函数在什么时候被调用?
- 复制构造函数(拷贝构造函数)
- 复制构造函数(拷贝构造函数)
- 复制构造函数(拷贝构造函数)
- 复制构造函数(拷贝构造函数)
- 复制构造函数(拷贝构造函数)
- 复制构造函数(拷贝构造函数)
- 复制构造函数(拷贝构造函数)
- 复制构造函数(拷贝构造函数)
- 复制构造函数(拷贝构造函数)
- 复制构造函数(拷贝构造函数)
- JAVA规则引擎 -- Drools
- 小虎对《人民的名义》小说人物人名研究V0.1
- js单线程与java多线程、同步与异步
- 报错:id to load is required for loading,原因关于ssh中模型驱动
- iOS swift 一个百度地图Demo
- 什么时候调用复制构造函数(拷贝构造函数)
- 算法题-开灯问题
- windows下作为应用程序启动apache的方法
- 自定义控件-仿QQ导航栏-跟手指示条
- Java java 程序员 计划表 工作三年以内
- 面向接口编程的好处
- spring mvc controller间跳转 重定向 传参
- Android根据系统设置获得对应格式的当前日期字符串
- docker基础(陆续更新)