在类实例之间共享的类中的`enum`定义,还是为每个实例复制?

hkB*_*sai 0 c++ optimization enums memory-management class

class MyClass
{
    public:
        enum ErrorCodes
        {
            ERR_SUCCESS     = 1,
            ERR_READ        = 2,
            ERR_WRITE       = 3,
            // ...
            ERR_ALLOCATE    = 99,
            ERR_DELETE      = 100
        };

        ErrorCodes DoSomething();
};

MyClass::ErrorCodes MyClass::DoSomething()
{
    // ...
    return ErrorCodes::ERR_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

在我的示例代码中有一个非常长的enum定义,其中包含100个变量.假设每个变量保存4个字节的内存,enum则将使用400个字节的内存.一旦我开始创建这个类的对象会发生什么?因此,每个对象是否会消耗额外的400字节内存enum,或者是否会在此类的enum所有对象之间共享,因此无论初始化的类实例数是多少,都将使用仅固定的400字节?

如果要为每个实例使用400字节的内存,在这种情况下我可以使用哪种替代方法?

Car*_*rum 6

一个enum声明时未使用任何运行时内存.这只是为常量使用符号名称的便捷方式.