Как передать перечисление в метод, не передавая его как целое число - PullRequest
1 голос
/ 11 июля 2019

У меня есть перечисление, которое содержит 3 различных значения

enum
{
    inputValidation_Zipcode,
    inputValidation_String,
    inputValidation_Number
} InputValidation;

Я пытаюсь передать одно из этих трех значений перечисления в метод, и попробовал следующее.

bool methodName(enum InputValidation inputenum)

bool methodName(InputValidation inputenum) 

и ofc

bool methodName(int inpoutenum) 

(Все три называются methodName (InputValidation_Number))

Я знаю, что последний будет "работать", но разрешает ВСЕ целые числа какаргументы.Как я могу написать метод, который принимает только значения inputValidation?

Ответы [ 2 ]

4 голосов
/ 11 июля 2019

Ваше определение enum неверно, оно должно быть:

enum /*class*/ InputValidation
{
    inputValidation_Zipcode,
    inputValidation_String,
    inputValidation_Number
};

Тогда вы можете использовать:

bool methodName(InputValidation inputenum);
1 голос
/ 11 июля 2019

Попробуйте перечисление scoped enum, добавив class следующим образом:

enum class InputValidation
{
    inputValidation_Zipcode,
    inputValidation_String,
    inputValidation_Number
};

Для получения дополнительной информации: https://en.cppreference.com/w/cpp/language/enum

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...