gpt4 book ai didi

c++ - 枚举值的行为是否像全局变量?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:49:29 27 4
gpt4 key购买 nike

我有两个枚举,如果一个枚举中有一个值与另一个枚举中的值同名:

enum A {joe, bob, doc};
enum B {sunday, monday, doc};

编译器(Visual Studio 的)提示 doc 的重新定义,这意味着它将其视为全局变量。是这样吗?这不是我所期望的行为,它迫使我管理项目中所有枚举元素的名称。

任何见解都会有所帮助。

最佳答案

它不被视为全局变量。它被视为全局标识符

更准确地说,它被视为声明 enum 的任何命名空间中的标识符。在您的情况下,这是全局命名空间。

要了解全局标识符和全局变量之间的区别,请尝试获取枚举的地址。 ;)

通常,当我定义枚举时,我会在前面加上标识符名称的缩写版本。像这样:

enum InstrumentType { itStock, itEquityOption, itFutureOption };

这有助于避免碰撞。

关于c++ - 枚举值的行为是否像全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4269365/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com