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/2822243/

相关文章:

function - 来自报告函数的 SSRS 引用报告变量

java - 为什么 Double 变量的比较返回 false?

c++ - 为什么甚至需要 WEXITSTATUS?

C++:未使用函数返回值时如何触发编译器错误?

c++ - 带有自定义比较器的 C++ std::map 用于保持比赛锦标赛

c++ - 在不使用字符串的情况下计算数字中的数字

c++ - MinGW 和 GLUT 未定义对 '_imp____glutInitWithExit@12' 的引用

c# - 运行需要 MySql.Data 的内置 .NET 应用程序

PHPDoc:@return void 有必要吗?

c++ - matlab reshape 和置换函数的 C/C++ 替代方案