gpt4 book ai didi

c++ - 从函数返回期间未调用复制构造函数

转载 作者:行者123 更新时间:2023-11-28 07:21:05 25 4
gpt4 key购买 nike

<分区>

为什么在 main 函数的最后几行中函数 func 的返回调用没有调用复制构造函数..当我按值发送参数时调用它而不是当我返回值时调用它

class A
{
public:
int x , y , z;
A(int x=4 , int y=2 , int z=1)
{
this->x = x;
this->y = y;
this->z = z;
}

A(A& a)
{
x = a.x;
y = a.y;
z = a.z;
printf("Copy Constructor called\n");
a.x++;
}

//not a copy constructor
A(A *a)
{
x = a->x;
y = a->y;
z = a->z;
printf("Some Constructor called\n");
(a->x)++;
}
void tell() { printf("x=%d y=%d z=%d\n" , x , y , z);}
};

A func()
{
A a;

return a;
}

int main()
{
A a1;

a1=func(); //why is copy constructor not called while returning
a1.tell();
return 0;
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com