函数返回值与修改通过引用传递的值

use*_*986 2 c++ choice return-value pass-by-reference

在什么情况下最好返回一个对象而不是仅仅修改通过引用传递给该函数的对象?我怎么知道我应该选择哪一个?

实际上,问题是如果没有从函数返回对象的能力,而只能修改通过引用传递的对象,我是否无法做某些事情。

use*_*003 5

之间的主要语用区别

 TYPE function () ;
Run Code Online (Sandbox Code Playgroud)

 void function (TYPE &value) ;
Run Code Online (Sandbox Code Playgroud)

是前者可以用在表达式中。

a = 10 * function () ;
Run Code Online (Sandbox Code Playgroud)

如果(函数()){}

这是主要的设计考虑。

除此之外,我还得征求意见。我将坚持客观差异。


Adr*_*May 1

退货是一个简单的选择,但如果有异议,您将使用参考。原因之一是您对返回值有其他想法,例如成功/失败代码。另一个原因是它在堆栈上看起来很大,而你使用的是一台很小的计算机。当然,您可能想要修改现有变量或结构而不是创建新变量或结构。我想就是这样。

我不知道有什么不能通过传递引用或指针来接收结果来完成。