首页 > 后端开发 > C++ > 正文

C 枚举可以继承其他枚举吗?

Mary-Kate Olsen
发布: 2024-10-31 01:45:29
原创
946 人浏览过

Can C   Enumerations Inherit from Other Enumerations?

C 中枚举的继承

封装是提高代码可重用性和可维护性的基本编程原则。在 C 中,继承允许类从其基类继承属性和功能。我们可以将这个概念扩展到枚举吗?

提出的问题是:有没有办法从 C 中的另一个枚举继承一个枚举?具体来说:

<code class="cpp">enum eBase 
{
   one=1, two, three
};


enum eDerived: public eBase
{
   four=4, five, six
};</code>
登录后复制

克服限制

虽然不直接支持上面显示的语法,但有一种模式可以实现类似的功能:

<code class="cpp">class Enum
{
public:
    enum
    {
        One = 1,
        Two,
        Last
    };
};

class EnumDeriv : public Enum
{
public:
    enum
    {
        Three = Enum::Last,
        Four,
        Five
    };
};</code>
登录后复制

这里,我们将 Enum 定义为包含枚举类型的类。 EnumDeriv 公开继承自 Enum。请注意,这两个枚举在各自的类中都使用了 enum 关键字。

访问继承的值

要访问继承的值,我们在枚举名称前加上类名称前缀,例如,EnumDeriv::One。最后一个常量也可以从 EnumDeriv 访问,从而实现无缝连续性。

演示

<code class="cpp">int main()
{
    std::cout << EnumDeriv::One << std::endl;
    std::cout << EnumDeriv::Four << std::endl;
    return 0;
}</code>
登录后复制

输出:

1
4
登录后复制

以上是C 枚举可以继承其他枚举吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!