gpt4 book ai didi

c++ - = 在声明变量时是否与复制构造函数 C++ 相同?

转载 作者:搜寻专家 更新时间:2023-10-31 01:16:37 24 4
gpt4 key购买 nike

我 catch 了上课时间,并在 main 中声明:

time a;
time b=a;

这和 :

一样吗
time b(a);

??? 我也做了功能:

time f(time t)
{
return t;
}

并在声明一个 : 之后在 main 中使用它

time b=f(a);

我在调用复制构造函数时打印消息,结果只有 2 次调用复制构造函数,一次复制 a 到 t,另一个复制 t 返回,这是我的问题,没有调用复制构造函数来复制值从函数返回到 b ?

提前致谢!

最佳答案

标题中的问题和帖子底部的问题不同。对于标题中的那个:

does = when declaring a variable the same as copy constructor c++?

不完全是。首先将右侧的表达式转换为左侧的类型,然后调用复制构造函数。这需要隐式转换。如果不可能,初始化将不会编译。如果右边的表达式已经是正确的类型,那么第一步就不需要了。

对于您的其他问题,这是 return value optimization .

关于c++ - = 在声明变量时是否与复制构造函数 C++ 相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8954034/

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