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