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 バイトのメモリを保持すると仮定すると、 はenum400 バイトのメモリを使用します。このクラスのオブジェクトを作成し始めるとどうなりますか? このため、各オブジェクトは余分に 400 バイトのメモリを消費しますか?enumそれともenum、このクラスのすべてのオブジェクト間で共有され、初期化されたクラス インスタンスの数に関係なく固定の 400 バイトのみが使用されるようになりますか?

各インスタンスに 400 バイトのメモリを使用する場合、この場合、どのような代替アプローチを使用できますか?

4

1 に答える 1

6

enum宣言はランタイム メモリを使用しません。これは、定数に記号名を使用する便利な方法です。

于 2013-05-11T20:47:36.903 に答える