Können C-Enums von anderen Enums erben?
Oct 31, 2024 pm 07:16 PMEnums 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!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

GULC: C -Bibliothek von Grund auf neu gebaut

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

eindeutiger Gebrauch und Phrasenfreigabe

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?
