如果傳遞一個大對象給一個函數,比如說一個包含大數組的類,那麼通過引用傳遞總是更好?這個想法是構造函數,以便:C++通過引用傳遞
加成的第一篇文章之後: 如果我想要的功能是不可修改的,我會用const引用。
我可以再調用函數簡單地通過將對象添加到其中:
T large_data = T(1000000);
f(large_data);
如果傳遞一個大對象給一個函數,比如說一個包含大數組的類,那麼通過引用傳遞總是更好?這個想法是構造函數,以便:C++通過引用傳遞
加成的第一篇文章之後: 如果我想要的功能是不可修改的,我會用const引用。
我可以再調用函數簡單地通過將對象添加到其中:
T large_data = T(1000000);
f(large_data);
通常對於每個自定義類型最好通過引用或指針來傳遞。否則,除了性能,如果你的對象需要定製拷貝構造函數(你可能沒有實現它,但編譯器生成的只能做淺拷貝),你可能會遇到問題。此外,切片可能發生,等等......
這是通過引用將對象傳遞給函數的基本思想(對於不可變對象,使用const
):您不希望傳遞基礎(大量)數據,並且你不想要一個指針的混亂(內存管理問題,->
和取消引用)。
一般情況是,除非你需要它的副本。另外,除非修改輸入,否則使用'const'引用。 – juanchopanza
[如何將對象傳遞給C++中的函數?](http://stackoverflow.com/q/2139224/96780) –