复制构造函数总结
来源:互联网 发布:window串口编程 编辑:程序博客网 时间:2024/06/04 20:04
转载:http://blog.csdn.net/mishifangxiangdefeng/article/details/7195369
1.用同一类型的对象来初始化另一对象需要调用复制构造函数(复制构造函数是形参为const类类型的引用的构造函数)
例1:
本例要注意的是(1)和(2)的区别:复制构造函数也是构造函数的一种。只要是构造函数,就要开辟空间。
(1)在初始化的同时还要完成开辟空间的任务,所以在复制构造函数
(2)在L9已经开辟了空间(变通构造函数),这里只是赋值
2.复制构造函数可用于传参或返回值(仅限于按值传递)
例2:
例3:
输出:construct 5
copy
copy
copy
copy
copy
copy
copy
copy
copy
copy
先构造一个临时对象,再把它依次复制到容器中
4.根据元素初始化列表初始化数组元素时也调用复制构造函数
例:
输出结果:****Test1****
construct
construct
construct
construct
construct
****Test2****
construct 1
construct 2
construct 3
construct 4
construct 5
****Test3****
construct 1
construct 2
construct 3
construct 4
construct 5
copy
copy
copy
copy
copy
分析结果:
Test1:构造
Test2:构造(隐式类型转换)
Test3:L16是构造L17是复制
5.如果定义了自己的构造函数,系统还是会提供一个默认的复制构造函数
如果定义了自己的复制构造函数,系统不会提供一个默认的构造函数
6.复制构造函数的行为:依次复制每一个非static成员,只是复制内容,称为浅层复制。
如果类中有指针成员,浅层复制会出错。需要定义自己的复制构造函数,使用深层复制。
7.如果要禁止复制,可以复制构造函数声明为私有
如果连友元和成员也要禁止复制,可声明为私有,且只声明不定义。
8.iostream类禁止复制,它的复制构造函数是私有的
- 复制构造函数总结
- 复制构造函数总结
- 复制构造函数总结
- 复制构造函数的总结
- C++笔记二:复制构造函数总结
- C++复制构造函数、const相关总结
- 构造函数 复制构造函数
- 深复制-复制构造函数
- 构造函数、复制构造函数、析构函数混合使用总结
- 构造函数/复制构造函数/析构函数/赋值操作符的总结
- C++构造函数、复制构造函数、赋值操作符、析构函数--个人总结
- 构造函数、复制构造函数和析构函数的总结
- 关于复制构造函数
- 关于复制构造函数
- 关于复制构造函数
- 关于复制构造函数
- 关于复制构造函数
- 学习复制构造函数
- vs2010:无法解析的外部符号 _main
- Collections的sort方法 排序
- XP取SSDT表中指定索引号的函数地址
- 替代ListView的RecyclerView 的使用
- android优化 清除无效代码 UCDetector
- 复制构造函数总结
- 【学习笔记】以bitmap类型获取imageview的图片
- mysql中DATETIME、DATE和TIMESTAMP的区别
- Ant自动渠道打包心得
- PASSION之初始SHELL
- js获取浏览器信息--名称、版本、操作系统
- 在字体上划一条线
- NSTimer的使用以及 史上最简单的,NSTimer暂停和继续
- Eclipse快捷键 10个最有用的快捷键