gpt4 book ai didi

c++ - 按值返回还是按引用返回?

转载 作者:行者123 更新时间:2023-11-30 02:21:08 24 4
gpt4 key购买 nike

<分区>

关于按const reference 返回与按 返回,我想寻求一些反馈(以帮助我了解我在这个问题上的立场是否正确) >(出于性能原因)。

详细说明:

#include "BigDataStruct.h"

class DataGiver
{
public:
BigDataStruct getByValue() const { return myData; };
const BigDataStruct& getByConstRef() const { return myData; };

private:
BigDataStruct myData;
}

我的直觉表明 getByConstRef() 可能(或可能不会)比 getByValue() 有轻微的性能提升> 在以下情况下:

const BigDataStruct& someData = someDataGiver.getByConstRef();

但是不会(几乎)不会有这样的调用:

BigDataStruct someData = someDataGiver.getByConstRef();

另外 - 这让我有些不舒服 - 在第一种情况下 someDatasomeDataGiver 中的实际成员相关联,从某种意义上说,如果那里的成员发生变化 < em>someData 也发生变化,如果 someDataGiver 过期/死亡 someData 变为...未定义?

因此,我试图阻止我的同事通过 const 引用返回(除非我们实际上出于其他原因想要引用该对象 - 例如在单例工厂中)。我说的有道理吗,还是我只是无缘无故挑剔和烦扰我的同事?

(我知道优化的经验法则:1)不要做 2)先不要做 - 在实际做之前使用分析器)

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