c++ - 在引用 C++ 中存储函数的返回值

标签 c++ reference return-value

将对象的返回值存储在引用中是否有效?

class A { ... };
A myFunction()
{
    A myObject;
    return myObject;
} //myObject goes out of scope here

void mySecondFunction()
{
    A& mySecondObject = myFunction();
}

是否可以这样做以避免将 myObject 复制到 mySecondObject?不再需要 myObject 并且应该与 mySecondObject 完全相同,因此理论上将对象的所有权从一个对象传递给另一个对象会更快。 (这也可以使用 boost 共享指针,但有共享指针的开销。)

提前致谢。

最佳答案

不允许将临时对象绑定(bind)到非 const 引用,但如果您将引用设为 const,您将延长临时对象到引用的生命周期,参见 this Danny Kalev post about it .

简而言之:

const A& mySecondObject = myFunction();

关于c++ - 在引用 C++ 中存储函数的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55945805/

相关文章:

c - 如何返回多个值并将它们存储在 main() 函数中?

c++ - 混合 C/C++ 代码产生 "undefined symbol"与共享库

c++ - 将 char "number"转换为 real int

c++ - 使用inline内联汇编器对带有进位的bigint add进行编码

service - 更新服务引用时出错

php - 引用表1中的UID对表2实体进行计数

C++ 具有返回值的匿名函数

java - 如何存储 JTextField 中的值并传递给另一个类进行计算

c++ - “class classname* funcname(void) ”在C++中是什么意思?

python - Python 中的引用问题(树)