c++ - 从我的 C++ 中的变量中删除 'const' 会导致我以后出现问题吗?

标签 c++ constants

我正在调试一些 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/

相关文章:

C++ struct - 作为此参数传递 const 会丢弃限定符

C++ const 与 std::pair 的正确性

kotlin - 在 Kotlin 中将属性覆盖为常量的最佳方法

c++ - stb 图像加载库返回白色纹理

c++ - 如何在参数非常量中传递 const 指针

c++ - 为什么 `inf`代表浮点溢出?

c++ - const 变量是否放置在只读内存中?

c++ - 将 LCID 转换为语言字符串

c++ - 使用外部全局变量 c++ 分配数组大小

ruby - 如何在 Ruby 中找到方法的嵌套?