C++ 拷贝构造函数
来源:互联网 发布:个人淘宝网店怎么申请 编辑:程序博客网 时间:2024/06/13 23:57
1. 定义
<类名> (const <类名>&);
class A{ int x,y; public: A(); A(const A& a) { x = a.x+1; y = a.y+1; }}
其中,const是为了防止在函数中修改实参对象,可以省略。
拷贝构造函数也可以带有其他参数,但这些参数必须要有默认值。
2. 调用
下面三种情况将会调用拷贝构造函数:
1)定义对象
2)把对象作为值参数传递给函数
3)把对象作为返回值
如果在类定义中没有给出拷贝构造函数,则编译程序将会为其提供一个隐式的拷贝构造函数,此时的拷贝构造函数跟Java中的克隆函数有点像。
当类定义中包含成员对象,成员对象的拷贝初始化可由成员对象类的拷贝构造函数来实现。
系统提供的隐式拷贝构造函数会去调用成员对象的拷贝构造函数,而自定义的拷贝构造函数则不会自动去调用成员的拷贝构造函数,这时,必须要在拷贝构造函数的成员初始化表中显式指出。
class A{}class B{ int z; A a; public: B(); B(const B& b): a(b.a) { z = b.z; }}
0 0
- 【C++】拷贝构造函数
- C++:拷贝构造函数
- c++"拷贝构造函数
- C++: 拷贝构造函数
- 【C++】拷贝构造函数
- c++::拷贝构造函数
- 【C++】:拷贝构造函数
- 【C++】拷贝构造函数
- C++:拷贝构造函数
- C++_拷贝构造函数
- C++_拷贝构造函数
- 拷贝构造函数(C++)
- 拷贝构造函数(C++)
- C/C++ 拷贝构造函数
- c++(拷贝构造函数)
- 5.c++-拷贝构造函数(深拷贝,浅拷贝)
- c++_拷贝构造函数/浅拷贝/深拷贝
- 【C++】拷贝构造函数和赋值函数
- 排序算法——归并排序
- Jenkins进阶系列之——16一个完整的JENKINS下的ANT BUILD.XML文件
- fputcsv 和 fgetcsv 的使用
- O(nlogn)实现LCS与LIS
- Linux负载均衡软件LVS之一(概念篇)
- C++ 拷贝构造函数
- Jenkins进阶系列之——17Jenkins升级、迁移和备份
- 视图、用户管理
- 关于wampserver离线状态的问题
- Jenkins进阶系列之——18Jenkins语言本地化
- URL传参数是JSON字符串时,接收参数有错的解决办法。
- java基础知识(5)---Pattern类与Matcher详解
- The CoderPai Day in AI
- POJ