首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在C++中使用枚举作为标志?

如何在C++中使用枚举作为标志?
EN

Stack Overflow用户
提问于 2009-09-19 11:46:04
回答 14查看 196.7K关注 0票数 225

通过[Flags]属性将enum作为标志在C#中工作得很好,但是在C++中做这件事的最佳方法是什么呢?

例如,我想这样写:

代码语言:javascript
复制
enum AnimalFlags
{
    HasClaws = 1,
    CanFly =2,
    EatsFish = 4,
    Endangered = 8
};

seahawk.flags = CanFly | EatsFish | Endangered;

但是,我得到了关于int/enum转换的编译器错误。有没有比钝铸更好的方式来表达这一点?最好,我不想依赖来自第三方库的构造,比如boost或Qt。

编辑:如答案所示,我可以通过将seahawk.flags声明为int来避免编译器错误。然而,我希望有一些机制来加强类型安全,这样就不会有人写seahawk.flags = HasMaximizeButton了。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1448396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档