我如何使用 C++像 C# 一样的枚举类型?

发布于 2024-09-24 02:50:52 字数 208 浏览 1 评论 0原文

如何像 C# 一样使用 C++ 枚举类型?

考虑以下 C++ 中的定义:

enum myEnum { A, B, C};
myEnum en = A;

现在我想将第 #2 行写为 C# 中的以下行:

myEnum en = myEnum.A;

??

How can I use C++ enum types like C#?

consider following definition in c++ :

enum myEnum { A, B, C};
myEnum en = A;

Now I want to write line #2 as following line like C# :

myEnum en = myEnum.A;

??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

三岁铭 2024-10-01 02:50:52

嗯,C++ 中的规则不同。你能得到的最接近的是这个轻微的令人厌恶的东西:

namespace myEnum {
    enum myEnum { A, B, C};
}

myEnum::myEnum en = myEnum::A;

Well, different rules in C++. Closest you could get is this slight abomination:

namespace myEnum {
    enum myEnum { A, B, C};
}

myEnum::myEnum en = myEnum::A;
魂ガ小子 2024-10-01 02:50:52

C++0x 引入了 enum class ,它完全符合您的要求:

enum class myEnum { A, B, C };
myEnum en = myEnum::A;

在 C 中,我可能会使用良好的旧前缀:

enum myEnum { myEnum_A, myEnum_B, myEnum_C };
myEnum en = myEnum_A;

C++0x introduces enum class that does exactly what you want:

enum class myEnum { A, B, C };
myEnum en = myEnum::A;

In C, I would probably use good old prefixing:

enum myEnum { myEnum_A, myEnum_B, myEnum_C };
myEnum en = myEnum_A;
脸赞 2024-10-01 02:50:52

这里的问题到底是什么?您的 C# 示例将按照您编写的方式工作(尽管它与 .NET 命名约定不匹配...)

What exactly is the question here? Your C# example will work as you have written it (although it doesn't match the .NET naming conventions...)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文