C++学习笔记(五)

删除回忆录丶 提交于 2020-02-01 22:46:39

复制构造函数

简介

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

    起作用的三种情况

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

这两句的作用相同

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

int main()
{
A a2;
Func(a2);
return 0;
}

运行结果:copy

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

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

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

例如

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!