gpt4 book ai didi

c++ - 为什么我们不能从 C++ 中的函数中通过引用返回对象?

转载 作者:行者123 更新时间:2023-11-27 23:42:16 26 4
gpt4 key购买 nike

据我了解,原因是我们不必要地为像 a=b; 这样的简单语句调用复制构造函数(两者都是对象)。

我不明白的是,在我的书中写道,我们永远不应该通过引用传递对象,因为一旦函数终止,该引用就会不复存在。

那么我书上写的文字是错误的还是我在这里遗漏了什么? Text引用:Overloading assignment operator in C++

最佳答案

从函数返回引用没有错。

事实上,这就是赋值运算符 operator= 通常的定义方式(使用return *this; 进行方法链接)!

您不应该做的是返回对超出范围的对象的引用,例如

int& undefinedBehaviourServer()
{
int ub;
return ub;
}

在这种情况下,ub 具有自动存储持续时间,返回的对它的引用将挂起

关于c++ - 为什么我们不能从 C++ 中的函数中通过引用返回对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53611577/

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