C++,哪种参数样式更好,通过复制还是通过常量引用

C++, which parameter style is better, by copy or by const reference?

本文关键字:复制 常量 引用 更好 参数 样式 C++      更新时间:2023-10-16

我想知道在我的C++库中使用什么样的风格来管理只输入的函数参数:

void f(int a)
{
   // ...
}
void f(const int& a)
{
   // ...
}

我知道当我想传递类或结构的参数时,应该使用第二个,但小值呢?

当您对复制成本较低的结构使用Pass-by-value时,还有一个额外的优势,即编译器可能会假设对象没有别名,即它们不是相同的对象。但是,当您使用通过引用时,编译器不能总是这样认为。

您可能想查看想要速度?传递值如何将对象传递给C++中的函数

语义优先。

如果您需要修改该值,包括从中窃取,或者需要该值的快照,则对其进行复制。

在任何其他情况下,使用const&都很好。

至于优化?先测量。

如果值很小,这是个人偏好的问题。重要的是统一您的参数样式。