首页  >  文章  >  后端开发  >  C 枚举可以继承其他枚举吗?

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-31 01:45:29947浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn