用一个已有的对象来初始化一个被创建的同类的对象,是一种特殊的构造函数,具有一般构造函数的所有特性,其形参是本类对象的引用 。
用户可以根据自己实际问题的需要定义特定的拷贝构造函数,以实现同类对象之间数据成员的传递 。如果用户没有声明类的拷贝构造函数,系统就会自动生成一个缺省拷贝构造函数,这个缺省拷贝构造函数的功能是把初始对象的每个数据成员的值都复制到新建立的对象中 。
文章插图
扩展资料
拷贝构造函数使用原则:对于凡是包含动态分配成员或包含指针成员的类都应该提供拷贝构造函数;在提供拷贝构造函数的同时,还应该考虑重载“=”赋值操作符号 。
传递形式:拷贝构造函数必须以引用的形式传递(参数为引用值) 。其原因如下:当一个对象以传递值的方式传一个函数的时候,拷贝构造函数自动的被调用来生成函数中的对象 。
如果一个对象是被传入自己的拷贝构造函数,它的拷贝构造函数将会被调用来拷贝这个对象这样复制才可以传入它自己的拷贝构造函数,这会导致无限循环直至栈溢出(Stack Overflow) 。除了当对象传入函数的时候被隐式调用以外,拷贝构造函数在对象被函数返回的时候也同样的被调用 。
参考资料来源:百度百科-拷贝构造函数
参考资料来源:百度百科-深拷贝
【拷贝构造函数的作用】
推荐阅读
- 三角函数n次方积分公式
- 初三数学二次函数。
- CAD图拷贝到另一个CAD内,尺寸标注变大了一倍?
- 初始化磁盘提示函数不正确
- 3角函数的定义
- 汽车发动机构造与维修
- 函数中In代表什么 函数中In代表什么意思
- 三角函数公式大全与关系?
- EXCEL中IF函数如何选择多个条件
- 双曲线离心率公式三角函数表示