我想知道在我的C ++库中使用哪种最佳样式来管理仅输入的函数参数:
void f(int a)
{
// ...
}
void f(const int& a)
{
// ...
}
我知道当我想传递类或结构的参数时,我应该使用第二个,但小值是什么?
答案 0 :(得分:2)
当你对复制价格便宜的结构使用Pass by值时,还有一个额外的好处,即编译器可能认为对象不是别名,即它们不是同一个对象。但是当你使用pass-by-reference时,编译器不能总是假设它。
您可以查看 Want Speed? Pass by Value. 和 How to pass objects to functions in C++?
答案 1 :(得分:1)
首先是语义学。
如果您需要修改值,包括从中窃取,或需要值的快照,请复制它。
在任何其他情况下,使用const&
就可以了。
至于优化?首先测量。
答案 2 :(得分:0)
如果价值较小,则取决于个人喜好。重要的是统一参数样式。