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。 Last 定数には 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 中国語 Web サイトの他の関連記事を参照してください。