我有一个包含颜色属性的类,我想使用枚举来处理它。由于在运行时我的程序可能会创建该类的数千个实例,因此声明枚举以优化内存使用的最佳位置在哪里?
目前,我的类声明如下所示:
class Node
{
public :
//constructors, methods, etc...
enum class Color : char{WHITE, GREY, RED, GREEN}
protected :
//Some private attributes
Color _color = Color::WHITE;
};
我知道这是一种可以接受的方法,我的问题是:当我有 10 万个此类实例时,它会降低性能吗?
最佳答案
与任何数据类型一样,枚举自身不会占用您对象中的存储空间,它是存储的枚举的实例。 (关于这一点,enum
和 enum class
之间没有区别。)所以将 enum 移出类在这方面没有任何区别。
所以在你的例子中,color_
成员占用了存储空间。如果有您不需要的子类,您可能需要重新考虑您的类设计。否则,你很好!
关于c++ - 我应该在哪里声明一个涉及多次实例化的类的枚举类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35913878/