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;
}
在我的示例代碼中有一個非常長的定義,其中有100個變量。假設每個變量都包含4個字節的內存,則enum
將使用400個字節的內存。一旦我開始創建這個類的對象會發生什麼?由於這個enum
或者enum
會在這個類的所有對象之間共享每個對象是否會消耗額外的400字節的內存,所以只有固定的400字節纔會被使用,而不管初始化的類實例的數量是多少?是在類實例之間共享的類中的enum定義,還是爲每個實例複製?
如果要爲每個實例使用400字節的內存,那麼在這種情況下可以使用哪種替代方法?
枚舉只是數字的名字 - 它們不會被「存儲」在任何地方。 – 2013-05-11 20:47:35