C++ 中的枚举类型

发布于 2024-09-01 07:28:08 字数 310 浏览 1 评论 0原文

这有效:

enum TPriority 
{
    EPriorityIdle = -100,
    EPriorityLow = -20,
    EPriorityStandard = 0,
    EPriorityUserInput = 10,
    EPriorityHigh = 20
};

TPriority priority = EPriorityIdle; 

但这不起作用:

TPriority priority = -100;

有什么原因吗?

This works:

enum TPriority 
{
    EPriorityIdle = -100,
    EPriorityLow = -20,
    EPriorityStandard = 0,
    EPriorityUserInput = 10,
    EPriorityHigh = 20
};

TPriority priority = EPriorityIdle; 

But this doesn't work:

TPriority priority = -100;

Any reason?

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

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

发布评论

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

评论(4

神也荒唐 2024-09-08 07:28:08

它也有效,但你需要显式类型

TPriority priority = (TPriority)-100;

It works too, but you need explicit type

TPriority priority = (TPriority)-100;
初相遇 2024-09-08 07:28:08

简而言之:它违背了枚举的目的

shortly put: it defeats the purpose of having an enum

樱&纷飞 2024-09-08 07:28:08

即使该值与枚举的值之一匹配,也不能将 int 分配给枚举。

然而,铸造将起作用:

TPriority priority = static_cast<TPriority>(-100);

You cannot assign an int to an enum, even if the value matches one of the enum's values.

However, casting will work:

TPriority priority = static_cast<TPriority>(-100);
梦过后 2024-09-08 07:28:08

不存在从枚举类型的值到枚举类型本身的类型转换。只能反过来。

There is no type conversion from the values of an enum type to the enum type itself. Only the other way around.

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