【发布时间】:2014-04-13 09:41:19
【问题描述】:
在 C++ 中,有静态和非静态 const 数据成员。
当我想要一个常量时,我总是将其设为static,因为如果无法修改该项目,则拥有多个副本(每个类的每个实例一个)是没有意义的。我想知道为什么会有非静态const 成员?
【问题讨论】:
-
使用
static将此变量放入数据部分。如果您只使用本地对象,并且您的堆栈足够大以容纳它们,即使它们稍大(由于额外的非静态成员变量),您可能希望避免这种情况。 -
@barakmanos 这是否与特定硬件有关,或者即使代码可以在 PC 上运行也有明显优势?
-
它依赖于编译器实现(即,未由 C++ 语言标准定义)。我不明白您所说的“即使代码可以在 PC 上运行”是什么意思。