我有一个函数,我需要将值传递给只读目的。
例如:
unsigned short strlen(String str)
{
short i = 0;
while(str[i] != '\0')
i++;
return i;
}
正如您所看到的,我不想更改我使用的原始值,我只需要读取它的长度。它是否 - 在性能方面 - 更好地替换参数String str
,它正在制作原始变量的副本,通过像String &str
这样的引用?
答案 0 :(得分:5)
在性能方面 - 它会更好地替换参数String str,它正在通过像String& str这样的引用来复制原始变量吗?
是的,它会的。而不是创建一个您似乎不需要的副本,而是绑定引用。由于您没有修改对象,因此对const
的引用会更好:
unsigned short strlen(String const& str)
// ^^^^^^