How to pass an enum to a method without passing it as an integer

69 views Asked by At

I Have an enum which contains 3 different values

enum
{
    inputValidation_Zipcode,
    inputValidation_String,
    inputValidation_Number
} InputValidation;

I am trying to pass one of these three enum values to a method, and have tried the following.

bool methodName(enum InputValidation inputenum)

bool methodName(InputValidation inputenum) 

and ofc

bool methodName(int inpoutenum) 

(All three called as methodName(InputValidation_Number) )

I know the last one will "work" but allows ALL integers as arguments. How can I Write a method to only accept the inputValidation values?

2

There are 2 answers

1
Jarod42 On BEST ANSWER

Your enum definition is wrong, it should be:

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

Then you might use:

bool methodName(InputValidation inputenum);
0
abonneville On

Give scoped enum a try by adding class as follows:

enum class InputValidation
{
    inputValidation_Zipcode,
    inputValidation_String,
    inputValidation_Number
};

For more information: https://en.cppreference.com/w/cpp/language/enum