如果传递一个大对象给一个函数,比如说一个包含大数组的类,那么通过引用传递总是更好?这个想法是构造函数,以便: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) –