5

好吧,我相信标题很简单。我读过很多次应该避免复制重物,这似乎很合理(谁想成为内存猪?)。问题是,什么时候应该认为一个物体很重?有多少成员?

4

1 回答 1

5

任何时候您传递的对象大于指针的大小(通常在 32 位上为 4 个字节,在 64 位上为 8 个字节),那么避免复制会更有效。

您是否应该通过引用/指针传递它取决于有多少额外的工作,以及您将如何处理数据。如果你通过引用传递它只是为了创建一个副本并在你的函数中修改它,那么你就违背了这个目的。任何时候将它作为 const 引用传递就足够了,那么这样做可能是个好主意。

但是,请注意,大多数编译器都足够聪明,可以在启用优化编译代码时优化只读对象的复制。因此,除非它成为瓶颈并且您可以量化证明它,否则您不必真正担心它。

于 2012-05-08T18:22:28.297 回答