c++ 为什么要使用引用?

标签 c++ reference

<分区>

我是 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++ 为什么要使用引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40907513/

相关文章:

c++ - 在 C++0x 中专门针对 lambda 模板

c++ - 一个成员函数范围内的成员变量,但不在另一个成员函数范围内

c++ - 为什么使用运算符 = 进行引用可以,但使用构造函数则不行?

python - Cython & C++ : passing by reference

javascript - 定义对要以 JSON 格式存储的元素的引用,而不使用元素的类或 id

c++ - 是否可以在固定 namespace 下解析模板类型?

c++ - 如何根据参数从函数左值或右值返回?

c++ - Dijkstra 算法输出不正确

c++ - 为什么返回子对象时 "that is the complete object of a subobject"对象的生命周期延长了?

C++ 引用和返回值