gpt4 book ai didi

c++ - C++ 中成员的枚举成员,或替代

转载 作者:行者123 更新时间:2023-11-30 02:36:40 24 4
gpt4 key购买 nike

我想用C++创建一个enum,它的成员有成员。
我有一个类似的问题here ,但那一个处理的是 D,而不是 C++。


在 Python 中,我可以这样做:

class Product(enum.Enum):
PHOTOSHOP = "Image editor.", 0
FIREFOX = "Web browser.", 1
NOTEPAD = "Text editor.", 2

def __init__(self, description, num):
self.description = description
self.num = num
>>> print(Product.PHOTOSHOP.description)
>>> "Image editor."

Java 可以做这样的事情:

public enum Product {
PHOTOSHOP("Image editor.", 0),
FIREFOX("Web browser.", 1),
NOTEPAD("Text editor.", 2);

private final String description;
private final int num;

Product(String description, int num) {
this.description = description;
this.num = num;
}
}

我可以用 C++ 实现吗?
如果用 C++ 无法实现这种效果,那么什么是好的替代方案?

最佳答案

据我所知,您不能在 C++ 中使用多组件枚举,但我并不声称自己是专家。

然而,您可以做的是声明一个枚举并使用它来查找数组中的字符串。

enum Product
{
PHOTOSHOP = 0,
FIREFOX,
NOTEPAD,
// must always be last
PRODUCT_ENUM_SIZE
};

const char* Product_Descriptions[PRODUCT_ENUM_SIZE];
Product_Descriptions[PHOTOSHOP] = "Image Editor";
Product_Descriptions[FIREFOX] = "Web Browser";
Product_Descriptions[NOTEPAD] = "Text Editor";

std::cout << "Firefox product number: " << FIREFOX << ". Description: " << Product_Descriptions[FIREFOX] << std::endl;

关于c++ - C++ 中成员的枚举成员,或替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32462912/

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