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

C++ 如何将枚举传递给方法而不将其作为整数传递,c++,c++builder-xe7,C++,C++builder Xe7,我有一个包含3个不同值的枚举 enum { inputValidation_Zipcode, inputValidation_String, inputValidation_Number } InputValidation; 我试图将这三个枚举值中的一个传递给一个方法,并尝试了以下方法 bool methodName(enum InputValidation inputenum) bool methodName(InputValidation inputenum)

我有一个包含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值的方法?

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

enum/*class*/InputValidation
{
输入验证码,
输入验证\u字符串,
输入验证号
};
然后您可以使用:

bool方法名(InputValidation-inputunum);

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

enum/*class*/InputValidation
{
输入验证码,
输入验证\u字符串,
输入验证号
};
然后您可以使用:

bool方法名(InputValidation-inputunum);

通过添加
类来尝试作用域枚举,如下所示:

enum类输入验证
{
输入验证码,
输入验证\u字符串,
输入验证号
};
有关更多信息:

通过添加
类来尝试作用域枚举,如下所示:

enum类输入验证
{
输入验证码,
输入验证\u字符串,
输入验证号
};
有关更多信息:

InputValidation
是一个变量名,而不是类型。这就是为什么不能将其用作参数类型的原因。Jarod的回答向您展示了如何将
InputValidation
声明为一个类型
InputValidation
是一个变量名,而不是一个类型。这就是为什么不能将其用作参数类型的原因。Jarod的回答向您展示了如何将
InputValidation
声明为一种类型这仍然允许将常规
int
值传递给方法这仍然允许将常规
int
值传递给方法