Maison >développement back-end >C++ >Comment puis-je obtenir l'héritage de classe de base dans les classes C Enum ?
Héritage de classe de base dans les classes Enum
En C, les énumérations sont un type d'énumération qui représente un ensemble de valeurs nommées associées à des entiers . Bien que les énumérations puissent être pratiques pour représenter des constantes, il peut y avoir des situations dans lesquelles vous devez hériter d'une énumération existante pour en créer une nouvelle.
L'extrait de code fourni dans la question démontre une tentative d'hériter d'une énumération ( eBase) vers un autre (eDerived), mais cela n'est pas directement pris en charge en C. Les énumérations ne sont pas des classes et ne peuvent donc pas être héritées au sens traditionnel.
Cependant, il existe une solution de contournement pour obtenir une fonctionnalité similaire. En définissant une classe sous-jacente qui représente les constantes d'énumération, nous pouvons hériter de cette classe pour créer un nouveau type d'énumération :
<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>
Dans cet exemple, la classe Enum représente l'énumération de base et la classe EnumDerived hérite de là. Les valeurs EnumValue représentent les constantes d'énumération individuelles.
Pour accéder aux valeurs de l'énumération héritée, nous utilisons le nom complet, comme indiqué dans le code suivant :
<code class="cpp">int main() { std::cout << EnumDerived::EnumValueOne << std::endl; std::cout << EnumDerived::EnumValueFour << std::endl; }</code>
En utilisant ceci approche, nous pouvons réaliser l'héritage de classe de base dans les classes d'énumération en C , offrant un moyen d'étendre les énumérations existantes et d'en créer de nouvelles avec des valeurs supplémentaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!