C++学习笔记(五)

复制构造函数

简介

  • 只有一个参数,那个参数是对同类的对象的引用(不能是对象)
  • 格式:X::X(const x&)或X::X(x&)
  • 如果自己没有定义,则编译器会自动生成一个,完成复制功能
  • 如果自己定义了,则不再自动生成

    起作用的三种情况

  • 用一个对象去初始化另一个同类的对象时

C++学习笔记(五)_第1张图片

这两句的作用相同

  • 如果某个函数有个参数是类A的对象,那么该函数被调用时,类A的复制构造函数将被调用
class A
{public:
A(){};
A(A&a)
{
    cout<<"copy"<

所以,如果复制函数不是用来复制对象,就会出现形参未必等于实参的情况。

  • 如果函数的返回值是类A的对象,则返回时,A的复制构造函数会被调用

注意:对象间的赋值并不导致复制构造函数的调用

例如

C++学习笔记(五)_第2张图片

你可能感兴趣的:(C++学习笔记(五))