将NULL传递给枚举类型输入参数 - C ++

时间:2016-12-17 11:23:00

标签: c++ enums null parameter-passing

在我的代码中,我有两个枚举如下:

enum myEnum{e1, e2};
enum myEnum2{e3, e4};

我有一个如下所示的函数原型:

void function myFunc(myEnum in_enum1, myEnum in_enum2){

    some-code-here;

}

在某些情况下,我必须将第二个输入参数in_enum2留空。

我尝试将NULL传递给它,但编译器在执行此操作时给出了参数初始化错误。

如何将NULL传递给枚举类型输入参数?

提前致谢。

1 个答案:

答案 0 :(得分:1)

枚举基础类型是u int,它们不是指针,因此它们不能为空。

您可以使用指向枚举的指针,也可以在枚举中添加NULL选项。以下是后者:

enum myEnum{NULL, e1, e2};
enum myEnum2{NULL, e3, e4};

然后使用enum的NULL文字调用它。

myFunc(myEnum::NULL, myEnum2::NULL);