如果使用引用的目的是更改原始变量的值,为什么要使用 const 引用传递?[C++]
Why use pass by const reference if the point of using reference is to change original variable's value? [C++]
C++:
例如,如果我们想更改实际变量的值,就会使用"pass-by-reference"。
那么"通过常量引用传递"有什么用呢?它说它不允许我们改变变量的值。
好的。那么为什么不首先使用"pass-by-value"呢?:/"传递值"也不会更改变量的值。它将更改临时副本的值。
那么,为什么要使用CONST参考呢?o_o?我希望你能抓住我。
请帮我消除疑虑。
我想你是说为什么要
int foo(int const& bar)
而不是
int foo (int bar)
如果这是你的问题,那么使用通过引用传递,这样就不需要复制。在上面的例子中,它是琐碎的,因为参数是int
。但是,如果它是一个大的vector
或map
,您肯定不希望传递值,因为它会生成一个副本。
因此,如果您只想通过引用传递以避免复制,但不希望变量是可变的,那么您可以将其设为const
引用。
相关文章:
- 在 const 函数中通过引用和指针返回之间的区别
- 使用对const结构的const数组的引用进行构造
- 将const引用参数初始化为默认参数会导致悬空引用吗
- 在C++17中,引用const字符串的语义应该是什么
- 为什么当我为 for(auto& it : myUnorderedMap) {... = std::move(it.second)} 时,我会得到一个 const 引用?
- 类型为 "Bucket&"(未限定的 const 限定)的引用不能使用 "SortedList." 类型的值进行初始化 如何修复此错误?
- 为什么在引用指针时将 const 放在 & 符号的左侧有效,而在右侧则无效?
- 将返回类型专用化为 void 或 const 左值引用
- 在其他容器中使用 boost::container::static_vector 时,GCC 编译错误"将'const s'绑定到类型's&'的引用丢弃限定符"
- 在 C++ 中通过引用传递类成员时,Const 不起作用
- 我们可以有一个 setter 成员函数作为从 const 对象引用的 const 吗?
- 将对象传递给函数而不将其包装到 std::ref 中,而参数被指定为 const 引用
- 错误:对类型 'const ItemInstance' 的引用无法绑定到类型 'void' 的右值
- 包括"lvtocon.h",未定义对'operator<<(std::ostream&, char const*)的引用
- 如何在构造函数中传递 const 引用时强制编译器不接受右值
- 通过使用 const-cast 的非常量引用来延长临时的寿命
- const TYPE&- 我什么时候想通过引用 const 来使用?
- 指针引用const null值
- 三元运算符和通过引用const延长临时对象的生存期
- 为什么必须引用const来避免复制形参?