c++ - 我应该在哪里声明一个涉及多次实例化的类的枚举类?

标签 c++ optimization enums

我有一个包含颜色属性的类,我想使用枚举来处理它。由于在运行时我的程序可能会创建该类的数千个实例,因此声明枚举以优化内存使用的最佳位置在哪里?

目前,我的类声明如下所示:

class Node
{
public :
//constructors, methods, etc...
enum class Color : char{WHITE, GREY, RED, GREEN}

protected :
//Some private attributes
Color _color = Color::WHITE;
};

我知道这是一种可以接受的方法,我的问题是:当我有 10 万个此类实例时,它会降低性能吗?

最佳答案

与任何数据类型一样,枚举自身不会占用您对象中的存储空间,它是存储的枚举的实例。 (关于这一点,enumenum class 之间没有区别。)所以将 enum 移出类在这方面没有任何区别。

所以在你的例子中,color_ 成员占用了存储空间。如果有您不需要的子类,您可能需要重新考虑您的类设计。否则,你很好!

关于c++ - 我应该在哪里声明一个涉及多次实例化的类的枚举类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35913878/

相关文章:

optimization - 我可以在 Rust 中按值有效地返回对象吗?

c++ - 如何在 C++ 中使用枚举类型?

c# - 使用枚举初始化字典,名称在当前上下文中不存在

c++ - Visual Studio 2010 链接库并包含多个项目的路径

java - 为什么 ArrayList.clear() 方法不释放内存?

Mysql查询调优(大数据集)及解释计划

Flask Restx 枚举模型

c++ - Linux OpenSuse c++ 编译器问题。 (无法初始化节调试器的解压缩状态)

c++ - 如何使用智能指针作为类属性来复制对象?

c++ - QRegEx 帮助,一般的 RegEx