«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Могут ли перечисления C++ наследовать от других перечислений?

Могут ли перечисления C++ наследовать от других перечислений?

Опубликовано 16 ноября 2024 г.
Просматривать:432

Can C   Enums Inherit from Other Enums?

Расширение перечислений: изучение наследования классов базовых перечислений

В C перечисления предоставляют удобный способ представления фиксированных наборов значений. Однако могут быть сценарии, в которых вы захотите наследовать значения из существующего класса перечисления. Этот вопрос исследует возможность достижения такого наследования.

Могут ли перечисления наследовать другие перечисления?

По умолчанию типы перечислений в C не могут наследовать от других перечислений. Однако мы можем использовать подход на основе классов для имитации наследования перечислений.

Наследование перечислений на основе классов

Следующий код демонстрирует, как создать базовое и производное перечисление. использование классов:

#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 

В этом примере класс Enum определяет перечисление с тремя значениями: One, Two и Last. Класс EnumDeriv наследует Enum и расширяет его, добавляя еще три значения: Three, Four и Five.

Значения перечисления ограничены пределами классов, что позволяет наследовать значения, сохраняя при этом уникальность имени. В этом случае мы можем получить доступ к EnumDeriv::One и EnumDeriv::Four без двусмысленности.

Преимущества наследования перечислений на основе классов

  • Позволяет перечислениям наследовать и расширять существующие наборы значений.
  • Обеспечивает согласованный и расширяемый способ для обработки наследования перечисления.
  • Сохраняет уникальность имени в производном перечислении.
  • Может использоваться в сочетании с другими функциями C , такими как шаблоны и макросы.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3