Heim  >  Artikel  >  Backend-Entwicklung  >  Können C-Enums von anderen Enums erben?

Können C-Enums von anderen Enums erben?

DDD
DDDOriginal
2024-10-31 19:16:02373Durchsuche

Can C   Enums Inherit from Other Enums?

Enums erweitern: Erkunden der Vererbung von Basis-Enum-Klassen

In C bieten Enums eine praktische Möglichkeit, feste Wertemengen darzustellen. Es kann jedoch Szenarios geben, in denen Sie Werte von einer vorhandenen Enum-Klasse erben möchten. Diese Frage untersucht die Möglichkeit, eine solche Vererbung zu erreichen.

Können Aufzählungen andere Aufzählungen erben?

Standardmäßig können Aufzählungstypen in C nicht von anderen Aufzählungen erben. Wir können jedoch einen klassenbasierten Ansatz nutzen, um die Enum-Vererbung zu simulieren.

Klassenbasierte Enum-Vererbung

Der folgende Code zeigt, wie eine Basis- und eine abgeleitete Enum-Vererbung erstellt wird Verwenden von Klassen:

<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>

In diesem Beispiel definiert die Enum-Klasse eine Aufzählung mit drei Werten: Eins, Zwei und Last. Die EnumDeriv-Klasse erbt von Enum und erweitert sie durch das Hinzufügen von drei weiteren Werten: Drei, Vier und Fünf.

Die Enum-Werte sind innerhalb der Klassen gültig, was die Vererbung von Werten ermöglicht und gleichzeitig die Eindeutigkeit des Namens beibehält. In diesem Fall können wir ohne Mehrdeutigkeit auf EnumDeriv::One und EnumDeriv::Four zugreifen.

Vorteile der klassenbasierten Enum-Vererbung

  • Ermöglicht Aufzählungen Vorhandene Wertemengen erben und erweitern.
  • Bietet eine konsistente und erweiterbare Möglichkeit, die Vererbung von Enums zu handhaben.
  • Behält die Eindeutigkeit des Namens innerhalb der abgeleiteten Enum bei.
  • Kann in Verbindung verwendet werden mit anderen Funktionen von C, wie Vorlagen und Makros.

Das obige ist der detaillierte Inhalt vonKönnen C-Enums von anderen Enums erben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn