0
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;
}

在我的示例代码中有一个很长的enum定义,其中包含 100 个变量。假设每个变量拥有 4 字节的内存,enum则将使用 400 字节的内存。一旦我开始创建这个类的对象会发生什么?每个对象是否会因此而消耗额外的 400 字节内存enum,还是会在此类的enum所有对象之间共享,这样无论初始化的类实例数量如何,都只会使用固定的 400 字节?

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

4

1 回答 1

6

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

于 2013-05-11T20:47:36.903 回答