按值、引用和名称调用
Call by value, reference and name
可能的重复项:
按引用/C++值传递
我想知道按值/引用/名称调用之间有什么区别。为什么使用一个而不是另一个是有益的?
按值调用:将参数的副本传递给函数
调用 be 引用:不做额外的复制,直接传递调用方的变量。
主要区别在于,在价值范式调用中制作了一个额外的不必要的副本......您应该始终使用调用 be 引用(或 const 引用),除非被调用方需要修改变量并且您不希望更改调用方的变量...
按值调用会创建传递给函数的参数副本 - 因此对于可能产生大开销的大型对象。它还会阻止您对函数内的参数进行任何更改,因为它们只会反映在副本中。按引用调用传递对对象的引用,因此可以对该对象进行更改 - 当然,除非您传递const
引用。
相关文章:
- 通过引用传递-为什么要调用这个析构函数
- Visual c ++,使用字符串引用/指针调用 dll 函数
- 错误:无法解析对重载函数的引用;你的意思是调用它吗?
- 将通用引用强制转换为可调用的 void 指针,反之亦然
- 为什么我的运算符 + 重载尽管是通过引用传递的,但仍调用我的复制构造函数?
- C++有什么方法可以在既不调用函数模板也不提供其模板参数的情况下引用函数模板?
- 如何在 c# 代码中通过引用调用时从 c++ dll 更新数组值?
- 推理类型如何工作"auto"和按引用调用?
- C++ 通过引用调用函数
- 处理类内的回调时,必须调用对非静态成员函数的引用
- 在 C++20 之前,在带有常量或引用字段的"A"上调用 'std::vector<A>
- 按引用调用与按指针参数调用的差异 前递增和后递增
- 当有右值构造函数可用时,为什么从右值调用类引用构造函数重载?
- 如何在递归函数中调用引用数组?
- 构造函数参数中的引用调用引用的默认构造函数
- C/C++ 通过调用引用或直接释放指针
- 按值调用|引用的另一个问题
- c++从const指针调用引用函数
- 调用引用指针的非托管库函数
- 使用给定框架调用/引用另一个类C++变量或函数