This question already has answers here:
What's the difference between passing by reference vs. passing by value?
(15个回答)
3年前关闭。
我是C ++新手,正在开发一个模拟电话簿的程序。现在,对于插入操作,函数定义如下:
但是,如果我删除参考符号,它仍然可以工作并插入联系人。所以,我有点困惑,为什么我需要它们?
(15个回答)
3年前关闭。
我是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个字节并且不需要显式复制对象,则始终按const引用传递。
关于c++ - c++为什么要使用引用? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40907513/
10-17 01:33