拷贝构造函数
Posted joezzz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拷贝构造函数相关的知识,希望对你有一定的参考价值。
概念
如果构造函数的第一个参数是自身类型的引用,且任何额外参数都有默认值,则它是拷贝构造函数
第一个参数必须是自身类型的引用:某个函数具有非引用参数,调用过程中要进行拷贝初始化,此时要调用拷贝构造函数来拷贝实参,如果拷贝构造函数的第一个参数不是引用,我们又需要拷贝实参,这样将无限循环下去
合成拷贝构造函数
如果我们没有为一个类定义拷贝构造函数,编译器将会为我们定义一个,这个就叫合成拷贝构造函数
直接初始化
编译器选择参数最匹配的构造函数
拷贝初始化
使用拷贝构造函数来拷贝初始化
拷贝初始化发生时机:
1.用=定义变量时
2.将一个对象作为实参传递给一个非引用形参
3.从一个返回类型为非引用类型的函数返回一个对象
4.用花括号列表初始化数组元素或者一个聚合类中的成员
编译器可以绕过拷贝构造函数
以上是关于拷贝构造函数的主要内容,如果未能解决你的问题,请参考以下文章