拷贝构造函数

Posted joezzz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拷贝构造函数相关的知识,希望对你有一定的参考价值。

概念

  如果构造函数的第一个参数是自身类型的引用,且任何额外参数都有默认值,则它是拷贝构造函数

  第一个参数必须是自身类型的引用:某个函数具有非引用参数,调用过程中要进行拷贝初始化,此时要调用拷贝构造函数来拷贝实参,如果拷贝构造函数的第一个参数不是引用,我们又需要拷贝实参,这样将无限循环下去

合成拷贝构造函数

  如果我们没有为一个类定义拷贝构造函数,编译器将会为我们定义一个,这个就叫合成拷贝构造函数

技术分享图片

直接初始化

  编译器选择参数最匹配的构造函数

拷贝初始化

  使用拷贝构造函数来拷贝初始化

拷贝初始化发生时机:

1.用=定义变量时

2.将一个对象作为实参传递给一个非引用形参

3.从一个返回类型为非引用类型的函数返回一个对象

4.用花括号列表初始化数组元素或者一个聚合类中的成员

编译器可以绕过拷贝构造函数

技术分享图片

以上是关于拷贝构造函数的主要内容,如果未能解决你的问题,请参考以下文章

关于c++拷贝构造函数

拷贝构造函数

关于C++默认拷贝构造函数

C++拷贝构造函数:浅拷贝与深拷贝

构造函数 析构函数 拷贝构造函数 ~~~~~~~~~~拷贝构造函数

2022-04-09 STL容器vector与拷贝构造函数