當傳遞參數,這將在很短的時間量被稱爲數百萬次的函數和方法,傳球的開銷表示參數開始顯現。性能相關的問題WRT傳遞的參數引用函數/方法
無效美孚(常量SOMETYPE & ST) { ... }
對於類型等的std :: string,性病::矢量等...規則是通過引用傳遞,使得無意義副本不會發生。然而,在處理諸如雙打,整數等POD時,故事是完全不同的。
至於性能,如果函數/方法不需要變異的參數,有哪些常見的「東西看出來的」決定是否應該按引用傳遞,引用或複製時?
void foo1(SomeType& st)
{
...
}
void foo2(const SomeType& st)
{
...
}
void foo3(SomeType st)
{
...
}
void foo4(SomeType* st)
{
...
}
- 如果一個int/unsigned int類型總是通過複製傳遞?
- 是否應該只在64位或更高的目標上通過複製來傳遞double?
- 如果函數可以內聯 - 參數是如何傳遞的?
- 混淆如何通過ref/const ref傳遞時影響問題?
- 在什麼情況下參數的顯式副本在堆棧上有利?
注:這是不是一個關於常量,正確性問題。還在32/64位平臺上尋找與gcc和msvc有關的答案。
一些可能與Q /作爲:
https://stackoverflow.com/a/2139254/754951
Pass by Reference/Value in C++
Why pass by const reference instead of by value?
可能重複的[如何將對象傳遞給C++中的函數?](http://stackoverflow.com/questions/2139224/how-to-pass-objects-to -functions-in-c) –