Heim > Backend-Entwicklung > C++ > Können C-Aufzählungen von anderen Aufzählungen erben?

Können C-Aufzählungen von anderen Aufzählungen erben?

Mary-Kate Olsen
Freigeben: 2024-10-31 01:45:29
Original
1041 Leute haben es durchsucht

Can C   Enumerations Inherit from Other Enumerations?

Vererbung von Aufzählungen in C

Kapselung ist ein grundlegendes Programmierprinzip, das die Wiederverwendbarkeit und Wartbarkeit von Code fördert. In C ermöglicht die Vererbung, dass Klassen Eigenschaften und Funktionalitäten von ihren Basisklassen erben. Können wir dieses Konzept auf Aufzählungen erweitern?

Die gestellte Frage lautet: Gibt es eine Möglichkeit, eine Aufzählung von einer anderen Aufzählung in C zu erben? Konkret:

<code class="cpp">enum eBase 
{
   one=1, two, three
};


enum eDerived: public eBase
{
   four=4, five, six
};</code>
Nach dem Login kopieren

Überwindung der Einschränkungen

Während die oben gezeigte Syntax nicht direkt unterstützt wird, gibt es ein Muster, um eine ähnliche Funktionalität zu erreichen:

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

class EnumDeriv : public Enum
{
public:
    enum
    {
        Three = Enum::Last,
        Four,
        Five
    };
};</code>
Nach dem Login kopieren

Hier definieren wir Enum als eine Klasse, die einen Aufzählungstyp enthält. EnumDeriv erbt öffentlich von Enum. Beachten Sie, dass beide Aufzählungen das Schlüsselwort enum innerhalb ihrer jeweiligen Klassen verwenden.

Zugriff auf geerbte Werte

Um auf die geerbten Werte zuzugreifen, stellen wir dem Aufzählungsnamen den Klassennamen voran. z. B. EnumDeriv::One. Auf die Last-Konstante kann auch über EnumDeriv zugegriffen werden, was eine nahtlose Kontinuität ermöglicht.

Demonstration

<code class="cpp">int main()
{
    std::cout << EnumDeriv::One << std::endl;
    std::cout << EnumDeriv::Four << std::endl;
    return 0;
}</code>
Nach dem Login kopieren

Ausgabe:

1
4
Nach dem Login kopieren

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage