gpt4 book ai didi

c++ - 类实例之间共享的类内部的 `enum` 定义,还是为每个实例复制的?

转载 作者:太空宇宙 更新时间:2023-11-04 15:45:59 25 4
gpt4 key购买 nike

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 个字节的内存。一旦我开始创建这个类的对象会发生什么?每个对象是否会因为这个enum 消耗额外的 400 字节内存,或者 enum 是否会在此类的所有对象之间共享,以便只有固定的 400 字节无论初始化的类实例的数量如何,都将被使用?

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

最佳答案

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

关于c++ - 类实例之间共享的类内部的 `enum` 定义,还是为每个实例复制的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16501563/

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