如何将枚举传递给方法而不将其作为整数传递

时间:2019-07-10 21:30:49

标签: c++ c++builder-xe7

我有一个包含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 个答案:

答案 0 :(得分:4)

您的枚举定义错误,应该是:

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

然后您可以使用:

bool methodName(InputValidation inputenum);

答案 1 :(得分:1)

通过添加class来使作用域枚举如下:

enum class InputValidation
{
    inputValidation_Zipcode,
    inputValidation_String,
    inputValidation_Number
};

有关更多信息: https://en.cppreference.com/w/cpp/language/enum