性能:参考与值作为函数参数

时间:2013-04-27 18:11:01

标签: c++ c variables parameters reference

我有一个函数,我需要将值传递给只读目的。

例如:

unsigned short strlen(String str)
{
  short i = 0;
  while(str[i] != '\0')
    i++;
  return i;
}

正如您所看到的,我不想更改我使用的原始值,我只需要读取它的长度。它是否 - 在性能方面 - 更好地替换参数String str,它正在制作原始变量的副本,通过像String &str这样的引用?

1 个答案:

答案 0 :(得分:5)

  

在性能方面 - 它会更好地替换参数String str,它正在通过像String& str这样的引用来复制原始变量吗?

是的,它会的。而不是创建一个您似乎不需要的副本,而是绑定引用。由于您没有修改对象,因此对const的引用会更好:

unsigned short strlen(String const& str)
//                           ^^^^^^