我是C++新手,我正在开发一个模拟电话簿的程序。现在,对于插入操作,功能定义如下:C++为什么要使用引用?
void PhoneBook::insert(const string& name, const string& number)
但它仍然有效,并插入接触,以及如果我删除的参考符号。所以,我在这里有点困惑,为什么我需要他们?
void PhoneBook::insert(const string name, const string number)
我是C++新手,我正在开发一个模拟电话簿的程序。现在,对于插入操作,功能定义如下:C++为什么要使用引用?
void PhoneBook::insert(const string& name, const string& number)
但它仍然有效,并插入接触,以及如果我删除的参考符号。所以,我在这里有点困惑,为什么我需要他们?
void PhoneBook::insert(const string name, const string number)
void PhoneBook::insert(const string name, const string number)
在这里,你与所有数据副本构建新的字符串。这是沉重的操作。
void PhoneBook::insert(const string& name, const string& number)
这里要传递参考字符串(字符串的地址),尺寸的通常是4或8个字节,基于平台,这是很轻的操作。
另外,当您传递引用时,您可以与传递给函数的对象进行交互。
经验法则 - 总是由常量引用传递,如果变量大于8个字节大,你不要求目标明确的副本。
为了避免不必要的字符串复制。 – Kane