"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Pueden las enumeraciones de C++ heredar de otras enumeraciones?

¿Pueden las enumeraciones de C++ heredar de otras enumeraciones?

Publicado el 2024-11-16
Navegar:632

Can C   Enums Inherit from Other Enums?

Extensión de enumeraciones: exploración de la herencia de clases de enumeración base

En C, las enumeraciones proporcionan una manera conveniente de representar conjuntos fijos de valores. Sin embargo, puede haber escenarios en los que desee heredar valores de una clase de enumeración existente. Esta pregunta explora la posibilidad de lograr dicha herencia.

¿Pueden las enumeraciones heredar otras enumeraciones?

De forma predeterminada, los tipos de enumeraciones en C no pueden heredar de otras enumeraciones. Sin embargo, podemos aprovechar un enfoque basado en clases para simular la herencia de enumeraciones.

Herencia de enumeraciones basada en clases

El siguiente código demuestra cómo crear una enumeración base y derivada. usando clases:

#include 
#include 

class Enum
{
public:
    enum
    {
        One = 1,
        Two,
        Last
    };
};

class EnumDeriv : public Enum
{
public:
    enum
    {
        Three = Enum::Last,
        Four,
        Five
    };
};

int main()
{
    std::cout 

En este ejemplo, la clase Enum define una enumeración con tres valores: uno, dos y último. La clase EnumDeriv hereda de Enum y la extiende agregando tres valores más: Tres, Cuatro y Cinco.

Los valores de enumeración tienen un ámbito dentro de las clases, lo que permite la herencia de valores manteniendo la unicidad del nombre. En este caso, podemos acceder a EnumDeriv::One y EnumDeriv::Four sin ambigüedad.

Beneficios de la herencia de enumeraciones basada en clases

  • Permite que las enumeraciones heredar y ampliar conjuntos de valores existentes.
  • Proporciona una forma consistente y extensible de manejar la enumeración herencia.
  • Mantiene la unicidad del nombre dentro de la enumeración derivada.
  • Se puede utilizar junto con otras características de C, como plantillas y macros.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3