gpt4 book ai didi

c++ - 在 C++ 中更改 const 值的方法

转载 作者:可可西里 更新时间:2023-11-01 18:15:45 26 4
gpt4 key购买 nike

const value 在编程中经常使用。它为程序员提供了安全性,即该值将来不会改变。不幸的是,这并没有完全执行。因此,它有时会导致难以破译的细微错误。举个例子:

int a = 1;
const int& b = a; // I promise I will not change
a = 3; // I am a liar, I am now 3
cout << b; // As I will now show 3

也可以用其他方式改变const 的值;其中一些非常复杂,需要大量代码,而这些代码通常会在其他代码段中丢失,从而导致错误。

因此,有人会详细说明更改 const 值 的可能方法吗?如果您不了解所有内容,请不要担心,很多人不会(包括我自己)。把你知道的所有方法都说出来——毕竟你只能给出你所拥有的!

最佳答案

const int& b = a; // I only promise I will not change the value via b, nothing more.

const 不保证该值不会被其他引用或指针更改。想想下面的代码:

void f(const int& b) { ... }
...
int a = ...;
f(a);
a = ...;

a 的值不会在 f() 中改变(通过传递的参数),这就是全部保证。

const 只是一个 helper 。如果你不想改变某事,那就把它设为const,然后编译器会帮你检查它。您仍然可以像您的代码所示那样以其他方式更改原始值,最终这仍然是您的责任。

关于c++ - 在 C++ 中更改 const 值的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37706540/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com