C ++“ const”关键字的意义是什么?

问题描述 投票:-3回答:3

使用关键字const有什么意义?例如,制作游戏时,要做的第一件事就是设置游戏的宽度和高度。大多数情况下,您将使用以下示例:

const int Width

const int height

现在我知道您应该那样做,因为屏幕的宽度和高度在整个游戏中都不会改变,但是这样做有什么意义呢?您可以在不使用const的情况下做同样的事情,它将可以正常工作。

这只是一个例子。所以我现在很困惑的是:

如果您始终不更改变量,则在任何地方使用const关键字的要点是什么?

c++ const
3个回答
1
投票

非详尽原因清单:

  1. 软件工程(SWE)。 SWE不仅是编程,而是随着时间的推移与其他人一起编程。

    const允许显式表达一个不变式,它使您和其他人可以对代码进行推理。随着程序的变大,这些不变式不能仅仅被记住。这就是为什么用编程语言对它们进行编码会有所帮助的原因。

  2. 最佳机会。

    知道某些值不会更改,编译器可以进行优化,否则将无法进行优化。为了最大程度地利用此值,constexpr意味着将在编译时(而不只是在运行时)知道一个值。在潜在的多线程环境中,这一点变得更加重要。

    示例:What kind of optimization does const offer in C/C++?

    我忽略了整个程序分析,这将需要更长的答案,并且几乎可以肯定地不适用于通用C ++程序。


0
投票

没有const,您必须记住才能不更改变量。程序越大,越难。

它还有其他一些有用的效果:

const int a = 10;
int b[a]; // Doesn't work if `a` is not `const`.

// ...

void foo(const int &a) {};
void bar()
{
    foo(42); // Doesn't work if the parameter is a non-const reference.
}

-1
投票

const用于常量变量,这意味着没有人应该对其进行更改,或者const T &用于将非平凡类型作为参数传递,或者用于使指针恒定,或者用于指针所指向的值([ C0])

© www.soinside.com 2019 - 2024. All rights reserved.