什么时候返回 const 值是有益的?
Effective C 的第 3 条提倡在某些情况下将值作为 const 返回。然而,这种做法引发了对其有用性和潜在缺点的质疑。
在提供的具体示例中:
const Object myFunc() { return myObject; }
使用 const 会限制返回值的使用,因为它会阻止您执行对未命名 const 对象的某些操作,例如算术表达式。
按 const 值返回的目的主要是为了防止意外的 bool 强制转换的返回值。然而,在现代 C 中,建议使用显式关键字来达到此目的。
此外,在可以对返回对象执行非常量操作的情况下,按 const 值返回可以防止意外调用此类对临时创建的对象进行操作。例如:
(a + b).expensive();
但是,在 C 11 及更高版本中,强烈建议以非常量形式返回值以利用右值引用,该引用仅适用于非常量右值。
因此,虽然曾经有通过 const 值返回的理由,但它在现代 C 中已经基本上过时了。总之,除非有特定的性能考虑或为了防止意外的 bool 转换(现在可以使用显式处理),否则通常不认为通过 const 值返回值是可取的。
以上是什么时候在 C 中返回 const 值实际上是有益的?的详细内容。更多信息请关注PHP中文网其他相关文章!