我正在调试一些 C++ 代码,并希望更改特定函数内变量的值。该变量作为参数传递给使用 const
关键字的函数,例如:
void setRequest(const &data){
...
}
我现在想更改此函数内变量 data
的值。据我所知,我无法执行此操作,因为 data
已作为 const
传递给函数。
我想知道的是,除了允许我在函数内更改 data
的值之外,从参数中删除关键字 const
有什么影响?这是否有可能破坏代码的其他部分?删除 const
关键字时应注意哪些陷阱?
显然这样做会影响使用 data
变量的任何其他函数,但考虑到它保存的信息将始终是同一类型,我不认为它会导致任何重大问题- 这是正确的吗?
我想做的一个例子是:
void setRequest(&data){
...
bool match = false;
...
if(someCondition){
match = true;
}
if(match == true){
data = 1;
}
}
最佳答案
好的,你更新了你的代码,所以......因为 data
是通过 reference 传递的,你的改变不仅会让你对任何代码产生副作用 在您的函数之外(所以……不可预知的副作用),但是您会通过要求函数的参数不是const>.
关于c++ - 从我的 C++ 中的变量中删除 'const' 会导致我以后出现问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30934233/