Maison > développement back-end > C++ > le corps du texte

Comment puis-je obtenir l'héritage de classe de base dans les classes C Enum ?

Susan Sarandon
Libérer: 2024-10-30 20:20:02
original
949 Les gens l'ont consulté

How Can I Achieve Base Class Inheritance in C   Enum Classes?

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!