Maison > Article > développement back-end > Les énumérations C peuvent-elles hériter d'autres énumérations ?
Héritage des énumérations en C
L'encapsulation est un principe de programmation fondamental qui favorise la réutilisabilité et la maintenabilité du code. En C , l'héritage permet aux classes d'hériter des propriétés et fonctionnalités de leurs classes de base. Peut-on étendre ce concept aux énumérations ?
La question posée est : existe-t-il un moyen d'hériter d'une énumération d'une autre énumération en C ? Plus précisément :
<code class="cpp">enum eBase { one=1, two, three }; enum eDerived: public eBase { four=4, five, six };</code>
Surmonter les limitations
Bien que la syntaxe indiquée ci-dessus ne soit pas directement prise en charge, il existe un modèle pour obtenir une fonctionnalité similaire :
<code class="cpp">class Enum { public: enum { One = 1, Two, Last }; }; class EnumDeriv : public Enum { public: enum { Three = Enum::Last, Four, Five }; };</code>
Ici, nous définissons Enum comme une classe contenant un type énuméré. EnumDeriv hérite publiquement d'Enum. Notez que les deux énumérations utilisent le mot-clé enum dans leurs classes respectives.
Accès aux valeurs héritées
Pour accéder aux valeurs héritées, nous préfixons le nom de l'énumération avec le nom de la classe, par exemple, EnumDeriv :: One. La constante Last est également accessible depuis EnumDeriv, permettant une continuité transparente.
Démonstration
<code class="cpp">int main() { std::cout << EnumDeriv::One << std::endl; std::cout << EnumDeriv::Four << std::endl; return 0; }</code>
Sortie :
1 4
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!