Heim > Artikel > Backend-Entwicklung > Können C-Enums von anderen Enums erben?
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
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!