传入“const string &test”让我很烦恼

问题描述

大家好,

我正在为这个问题挠头。 “const”表示内容不变,“&”表示内容可以修改。那么他们是如何结合在一起的呢?

解决方法

& 表示内容是通过引用传递的,不一定是被修改的。相反,它意味着该对象没有被复制,这意味着它的复制构造函数没有被调用来传递它。可能会出现混淆,因为一个(常见的)引用是允许被调用者修改被引用的对象。

const 引用,如这里所示,是一种非常自然的方式来表达对对象的引用将被传递而不复制对象,被调用者不会修改对象。当对象的复制成本很高,被调用者不需要修改它,并且不存在需要复制的相关生命周期问题时,这是一种简单且有些有效的优化。