C++中复制构造函数(深度复制和浅复制(简单叙述))
来源:互联网 发布:星星知我心2007 编辑:程序博客网 时间:2024/05/17 22:39
当用一个对象去初始化另一个对象的时候,就会去调用复制构造函数。举个例子:
Class a = Class(2,1);Class b = a;
其中的b 对象就是调用了复制构造函数后生成的对象。
当函数按值传递给对象或者函数返回对象的时候,都会使用复制构造函数。
默认复制构造函数是逐个复制非静态成员的值,因为静态成员是独立于每个对象而存在的。这种复制称为浅复制。
例如,一个String类型对象指向一片内存,那么使用默认复制构造函数,将把这个地址赋给新值。使两个指针指向同一个对象。这样当调用析构函数,释放对象时将会出错,试图去释放以释放的内存会报错。
这时候就需要深度复制了。将去复制指向的值。而不是指针值。也就是重新去调用new操作符生成一个新的成员。
这次讲的比较少,因为下班回来后真的好累。书看进去的效率不是很高。以后会渐渐补完整。
- C++中复制构造函数(深度复制和浅复制(简单叙述))
- C++复制构造函数(深复制和浅复制)
- c#:深度复制和浅度复制
- c/c++整理--复制构造函数和深复制及浅复制
- c/c++整理--复制构造函数和深复制及浅复制
- C++(22)复制构造函数
- C++: 复制构造函数
- C++(30)构造函数和复制控制
- C++_浅层复制构造函数和深层复制构造函数
- c++-拷贝构造函数(复制构造函数)
- 拷贝(复制)构造函数
- 复制构造函数(2)
- 【C++】This指针和复制构造函数
- 【C++】拷贝构造函数之浅复制与深复制
- 复制构造函数——浅复制and深复制(2)
- 构造函数和复制构造函数(转)
- 复制构造函数(拷贝构造函数)
- 复制构造函数(拷贝构造函数)
- BLAST how to use blastn
- Sphinx安装与测试
- Coreseek安装与测试
- 什么叫做“假学习”?
- BLAST Command Line Applications User Manual
- C++中复制构造函数(深度复制和浅复制(简单叙述))
- C++枚举线程方法
- java生成html
- matlab7.0的打开出错解决方案
- 棋盘分割----dp
- vmware+ubuntu10.04 连接USB和笔记本摄像头
- 用java实现英文字母个数的统计
- 积累帖——从零学起
- HTTP proxy problem – Permission denied: proxy: HTTP: attempt to connect to 127.0.0.1:8080