【问题标题】:What is the benefit of the const keyword in programming? [duplicate]const关键字在编程中有什么好处? [复制]
【发布时间】:2011-03-16 20:44:48
【问题描述】:

可能重复:
Sell me on using const correctness

我很想知道答案。 [to "const关键字在编程中有什么好处?"]

【问题讨论】:

  • 为什么会获得近距离投票?这个问题很清楚,尽管在标题中
  • @David 我同意,这个问题不是那么模糊。其实很清楚了,第一个谷歌搜索结果“Const关键字在编程中的用法是什么?”就回答了
  • 我们中的大多数人都乐于提供帮助,但是...接下来您将询问struct#ifdef 的使用。为什么不读一本关于 C 编程的书?
  • 我认为社区对这里的 OP 太苛刻了。他专门询问了 const 的好处,而不是它的含义。从技术上讲,如果要删除包含 const 修饰符的每个代码,它们的功能都会相同,因此这是一个非常有效(尽管是新手)的问题。总的来说,SO 社区最近似乎对结束问题感到非常高兴。

标签: c++ c constants keyword


【解决方案1】:

const关键字在编程中有什么好处?

将变量指定为 const 表示变量的值在初始赋值后永远不会改变。这允许编译器在编译时执行额外的测试(验证您的代码)。

例如,如果 const 函数更改对象中的(非可变)成员,编译器将产生错误。

【讨论】:

    【解决方案2】:

    好处:您可以获得更多的编译时间检查,以确保您不会更改不应更改的数据。

    成本:您必须在任何地方使用它。如果需要,您可以摆脱它,从而抵消好处。

    使用指针可能会很棘手。指针本身是常量,还是它引用的数据?这也是我见过的最常见的用法:你想指向不可变的内存。

    【讨论】:

      【解决方案3】:

      const 关键字可以声明一个只读变量。

      对方法使用const参数告诉你方法不会改变参数。

      const 方法告诉您该方法不会更改类的成员变量(但可以更改标记为 mutable 的成员变量)

      你也可以声明const指针,更好的描述here

      【讨论】:

        【解决方案4】:

        const表示分配给变量的值不能改变。如果您尝试更改该值,您应该会收到编译器错误。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-10-20
          • 2015-03-26
          • 1970-01-01
          • 2010-09-12
          • 2011-07-22
          • 1970-01-01
          • 1970-01-01
          • 2011-11-04
          相关资源
          最近更新 更多