拷贝函数的调用时机
- 对象以值传递的方式传给函数参数;
- 函数局部对象以值传递的方式从函数返回(vs debug)模式下调用一次拷贝构造,qt不调用任何构造;
- 用一个对象初始化另一个对象;
第一种:
void text01()
{
Person p0;
Person p1(10);
cout<<p1.m_age<<endl;
Person p2(p1);//拷贝构造函数
cout<<p2.m_age<<endl;
Person p3=p1;//拷贝构造函数 相当于Person p3=Person(P1);
cout<<p3.m_age<<endl;
}
结果:
第二种:
传递的值是普通对象,函数参数也是普通对象,传递将会调用拷贝构造
//传递的值是普通对象,函数参数也是普通对象,传递将会调用拷贝构造
void dowork(Person p){
cout<<p.m_age<<endl;};
void text02()
{
Person p1(10