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
Run Code Online (Sandbox Code Playgroud)
也可以const用其他方式改变数值; 其中一些非常复杂,需要大量的代码,这些代码经常在其他代码段中丢失,从而导致错误.
那么有人会详细说明改变一个可能的方法const value吗?不要担心,如果你不知道所有,很多人不会(包括我自己).告诉你所知道的所有方法 - 毕竟你只能给你所拥有的东西!
const int& b = a; // I only promise I will not change the value via b, nothing more.
Run Code Online (Sandbox Code Playgroud)
const不保证其他引用或指针不会更改该值.考虑以下代码:
void f(const int& b) { ... }
...
int a = ...;
f(a);
a = ...;
Run Code Online (Sandbox Code Playgroud)
内部的值a不会被改变f()(通过传递的参数),这就是所有的保证.
const只是一个帮手.如果你不改变它const,那么编译它,然后编译器将帮助你检查它.您仍然可以通过代码显示的其他方式更改原始值,最后仍然是您的责任.