为什么通过引用返回比通过值返回更快?

时间:2013-08-12 17:23:26

标签: c++ reference return-by-reference

class A
{
    int x,y;
    public:
       A(int a=0,int b=0)
       {x=a;y=b;}
    /* ... */
}

A& fctr()
{
    A loc(1,2);
    return loc;
}

让我们看一下这条指令:

A x=fctr();

fctr()返回对被销毁对象的引用...<<这不是问题-_-

在上面的说明中,根据fctr返回的引用,程序复制将销毁的对象 loc 转换为x。

另一方面,按值复制将对象 loc 返回到x !!

我看到的唯一区别是,当通过引用返回时,对象 loc 被销毁,但是当按值返回时,对象 loc 不会销毁直到说明已经完成。

因此按值返回似乎是安全的,它与通过引用返回相同!!

我在书中读到的内容以及我从人们那里听到的内容是,通过引用返回比通过值返回更快...

那么为什么通过引用返回比通过值返回快?

......我认为我错了,但我不知道它是什么?!!!

1 个答案:

答案 0 :(得分:0)

通过引用返回 - 系统不需要分配&初始化任何额外的内存。只需要传递已存在位置的内存地址。

按价值回归 - 系统需要分配&初始化额外的记忆。

完全取决于您是否需要“按参考”或“按价值”的要求。