Мне интересно, возможно ли инициализировать перечислимый класс как ноль. Я написал короткий пример, чтобы проиллюстрировать, о чем я спрашиваю.
У меня здесь есть заголовок, который определяет класс enum с именем ColorOptions
#ifndef COLORS_HPP
#define COLORS_HPP
enum class ColorOptions
{
RED,
BLUE
};
#endif
, и у меня также есть класс который использует этот класс перечисления для печати цветов на основе значения перечисления
#include "Colors.hpp"
#include <iostream>
void printColor(ColorOptions col);
int main()
{
printColor(ColorOptions::RED);
printColor(ColorOptions::BLUE);
}
void printColor(ColorOptions col)
{
switch(col)
{
case ColorOptions::RED:
std::cout << "The color is red" << std::endl;
break;
case ColorOptions::BLUE:
std::cout << "The color is blue" << std::endl;
break;
default:
std::cout << "The color is unknown" << std::endl;
}
}
Возможно ли в этом случае инициализировать ColorOptions
как что-то отличное от RED
или BLUE
? Я хочу достичь значения по умолчанию для метода printColor
, но я не уверен, возможно ли это без добавления другого типа в перечисление ColorOptions
.