【问题标题】:What are the advantages of passing a reference to an object? [duplicate]将引用传递给对象有什么好处? [复制]
【发布时间】:2015-11-24 17:08:52
【问题描述】:

我研究了对象可以通过引用传递(我的意思是函数的参数是引用)。但是为什么人们更喜欢它们而不是简单地传递对象。我的动机是只使用该对象而不是修改它,所以我不是指微不足道的优势。那么,将引用传递给对象有什么好处呢?

【问题讨论】:

  • 你避免复制它。有些对象复制起来很昂贵;其他的根本无法复制,因此无法按值传递。
  • @IgorTandetnik 还有一个内存优势,因为如果对象不是通过引用传递的,那么参数对象(副本)将占用更多(额外)内存,并且一旦函数作用域结束?
  • 是一样的。 “制作副本”必然意味着“分配内存来保存副本”和“最终销毁副本”。

标签: c++ reference


【解决方案1】:

以下是引用传递的一些优点:

  1. 没有创建新的变量副本,因此节省了复制开销。这 特别是在传递大型结构或类的对象时,使程序执行得更快。
  2. 可以传递数组或对象
  3. 有时函数需要更改原始值(例如,对数组进行排序、交换),有时更改函数内部的值很有用。
  4. 可以从一个函数返回多个值。

【讨论】:

  • 如何从函数返回多个值?
  • @LetDoit 使用通常所说的输出参数
  • @ʎǝɹɟɟɟǝſ 我看到我们可以只返回单个值.. return something;
  • @LetDoit 这里是一个例子:ideone.com/ySTZIz 如何通过引用返回两个值。
  • @Ashiquzzaman 哦,我期待返回声明。谢谢提醒。
猜你喜欢
  • 2016-12-18
  • 2012-09-01
  • 2023-03-02
  • 1970-01-01
  • 2023-01-13
  • 1970-01-01
  • 1970-01-01
  • 2018-06-27
  • 2014-05-01
相关资源
最近更新 更多