列挙型の拡張: 基本列挙型クラスの継承の探索
C では、列挙型は固定値セットを表す便利な方法を提供します。ただし、既存の列挙クラスから値を継承する必要があるシナリオも考えられます。この質問は、そのような継承を実現する可能性を探ります。
列挙型は他の列挙型を継承できますか?
デフォルトでは、C の列挙型は他の列挙型から継承できません。ただし、クラスベースのアプローチを活用して列挙型の継承をシミュレートできます。
クラスベースの列挙型の継承
次のコードは、基本列挙型と派生列挙型を作成する方法を示しています。 usingclasses:
<code class="cpp">#include <iostream> #include <ostream> class Enum { public: enum { One = 1, Two, Last }; }; class EnumDeriv : public Enum { public: enum { Three = Enum::Last, Four, Five }; }; int main() { std::cout << EnumDeriv::One << std::endl; std::cout << EnumDeriv::Four << std::endl; return 0; }</code>
この例では、Enum クラスは 3 つの値 (One、Two、および Last) を持つ列挙型を定義します。 EnumDeriv クラスは Enum を継承し、さらに 3 つの値 (Three、Four、および Five) を追加して拡張します。
enum 値のスコープはクラス内にあるため、名前の一意性を維持しながら値の継承が可能です。この場合、曖昧さなく EnumDeriv::One および EnumDeriv::Four にアクセスできます。
クラスベースの Enum 継承の利点
以上がC 列挙型は他の列挙型から継承できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。