Страницы

Поиск по вопросам

вторник, 31 декабря 2019 г.

2 Enum с одинаковыми полями

#cpp


Каким образом определить 2 enum с одинаковыми полями?

enum horizontal_alignment
{
    stretch = 0x0,
    center,
    left,
    right
};

enum vertical_alignment
{
    stretch = 0x0,
    center,
    top,
    bottom
};

    


Ответы

Ответ 1



Либо спрятать каждый enum в отдельный namespace или класс. Либо использовать scoped enum enum class horizontal_alignment { stretch = 0x0, center, left, right }; enum class vertical_alignment { stretch = 0x0, center, top, bottom }; Разумеется, обращаться к элементам таких enum придется с указанием полного имени vertical_alignment::stretch.

Ответ 2



Если хотите два enum с одинаковыми полями, отметьте хотя бы один из них как class. enum class horizontal_alignment { stretch = 0x0, center, left, right }; enum vertical_alignment { stretch = 0x0, center, top, bottom };

Комментариев нет:

Отправить комментарий