【发布时间】:2016-05-09 10:35:27
【问题描述】:
嗯,我知道 C++ 类中 const 数据成员的功能。
我想知道的是,在类中引入 const 数据成员的目的。为什么有人会在编写真正的软件时使用它? const 数据成员的实际用途是什么?
请给我一些现实生活中的例子并说明原因。
编辑:
我不是在问static const 数据成员。
我正在询问一些现实生活中的用例,其中每个对象对于相同的数据将具有不同的 const 值。
【问题讨论】:
-
对于在构造时确定的类不变量?
-
constexpr static double pi = 3.14.... -
@paper.plane 当你需要一个不是 const 的数据成员时,你能给我一个具体的例子吗?我会说 const 是默认情况下,而不是 const 是例外
-
@AlessandroTeruzzi:您计划存储在标准容器中的任何对象,仅此而已。我原则上同意你的观点,我在我的代码中洒满了
const,但是让封装类不可赋值是一个很大的限制。此外,还有几乎无限的潜在有用类,它们的状态会随着时间而变化。 -
@LightnessRacesinOrbit 我正在用我的评论推动信封。在我的辩护中,我发现软件社区确实偏向于可变对象(恕我直言,它们的缺点被广泛低估了)。但是,我同意,设计一个限制其接口的不可变对象比将数据成员设置为 const 更容易、更方便。