gpt4 book ai didi

c++ - 是否应该通过 const 引用传递小的简单结构?

转载 作者:IT老高 更新时间:2023-10-28 22:04:57 27 4
gpt4 key购买 nike

我一直被教导非原始类型应该通过 const 引用而不是在可能的情况下通过值传递,即:

void foo(std::string str);//bad
void foo(const std::string &str);//good

但我今天在想,也许实际上一些简单的用户定义类型实际上可能更好地按值传递,例如:

class Vector2
{
public:
float x, y;
...constructors, operators overloads, utility methods, etc...
};

void foo(Vector2 pos);
void foo(const Vector2 &pos);//is this really better than by value?
void foo(float x, float y);//after all isn't by value effectively doing this?

我的想法是,通过引用传递 Vector2,实际上比通过值传递更昂贵,因为编译器现在使用指针和解引用来访问 const Vector2 &pos 版本?

是这样吗?简单的对象最好按值传递吗?应该在哪里画线?

最佳答案

是的,简单的对象应该按值传递。必须根据架构绘制线。如有疑问,请提供个人资料。

关于c++ - 是否应该通过 const 引用传递小的简单结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3314010/

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