ホームページ  >  記事  >  バックエンド開発  >  C Enum クラスで基本クラスの継承を実現するにはどうすればよいですか?

C Enum クラスで基本クラスの継承を実現するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-30 20:20:02939ブラウズ

How Can I Achieve Base Class Inheritance in C   Enum Classes?

Enum クラスの基本クラスの継承

C では、 enum は、整数に関連付けられた名前付き値のセットを表す列挙型です。 。列挙型は定数を表すのに便利ですが、新しい列挙型を作成するために既存の列挙型を継承する必要がある状況もあります。

質問で提供されているコード スニペットは、1 つの列挙型 ( eBase) から別の (eDerived) への変換ですが、これは C では直接サポートされていません。列挙型はクラスではないため、従来の意味では継承できません。

ただし、同様の機能を実現する回避策があります。 enum 定数を表す基になるクラスを定義することで、このクラスから継承して新しい enum 型を作成できます。

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

enum class EnumDerived : int
{
public:
    EnumValue Three = Enum::Last,
    EnumValue Four,
    EnumValue Five
};</code>

この例では、Enum クラスは基本 enum を表し、EnumDerived クラスはそれから。 EnumValue 値は、個々の enum 定数を表します。

継承された enum の値にアクセスするには、次のコードに示すように、完全修飾名を使用します。

<code class="cpp">int main()
{
    std::cout << EnumDerived::EnumValueOne << std::endl;
    std::cout << EnumDerived::EnumValueFour << std::endl;
}</code>

これを利用することで、このアプローチでは、C の enum クラスで基底クラスの継承を実現し、既存の enum を拡張し、追加の値を持つ新しい enum を作成する方法を提供します。

以上がC Enum クラスで基本クラスの継承を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。