const value
经常用于编程。它为程序员提供了安全性,将来价值不会改变。不幸的是,这并没有完全实施。因此,它有时会导致很难破译的微小错误。作为一个例子:在C++中改变常量值的方法
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 value
?不要担心,如果你不知道全部,许多人不会(包括我自己)。只要告诉你所知道的所有方式 - 毕竟你只能给你所拥有的东西!
'a = 3'不是谎言,因为'a'是非常量。 'const_cast(b)= 3;'会是个谎言。 –
'b'不承诺价值不会改变。强制执行的是你不能直接使用'const'引用来改变值。我认为这是一个有趣的问题,但是你的例子绝对不是最好的 – user463035818
,但不是这个例子假,因为如果你做了'b = 3',你使'b' const不是'a',那么它将失败编译 – EdChum